中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 17:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 搜集所有游戏的LNK 查看 1,003 回复 7
楼 主 搜集所有游戏的LNK 发表于 2008-05-15 23:40 ·  中国 广东 茂名 电信
中级用户
★★
积分 396
发帖 183
注册 2007-12-23 06:24
18年会员
UID 106531
性别 男
状态 离线
@echo off&title cjl by 64721168
echo 正在创建所有游戏的快捷方式,请稍等
:choice
cls
for /f "delims=: tokens=*" %%i in (lnk.txt) do (
set path=%%~dpi
set file=%%~nxi
call :lnk
)

:lnk
(echo Set WshShell = WScript.CreateObject^("WScript.Shell"^)
echo strDesktop = WshShell.SpecialFolders^("Desktop"^) :'特殊文件夹“桌面”
echo.
echo set oShellLink = WshShell.CreateShortcut^(strDesktop ^& "\%file%.lnk"^)
echo oShellLink.TargetPath = "%path%\%file%" : '目标
echo oShellLink.WindowStyle = 1 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
echo oShellLink.Hotkey = "" : '快捷键
echo oShellLink.IconLocation = "%path%\%file%, 0" : '图标
echo oShellLink.Description = "" : '备注
echo oShellLink.WorkingDirectory = "%path%\%file%" : '起始位置
echo oShellLink.Save : '创建保存快捷方式) >bb.vbs
bb.vbs
goto :eof


这个是能够收集,但还需要手动修改LNK.TXT文件内路径,有新的还要添加,很麻烦,望哪位高手帮忙修改到完全智能搜集。
2 发表于 2008-05-16 02:24 ·  中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
把 link.txt 换成一个搜索所有游戏文件的命令不就可以了? dir /s /b /a-d *.exe
3 发表于 2008-05-16 09:34 ·  中国 广东 茂名 化州市 电信
中级用户
★★
积分 396
发帖 183
注册 2007-12-23 06:24
18年会员
UID 106531
性别 男
状态 离线
根本就不可能,游戏主程序只有一个,有些游戏变太的话,光EXE文件就几十个

而我要的只限于主程序
4 发表于 2008-05-16 19:51 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
自己把主程序名做列表……然后传入去dir查找
5 发表于 2008-05-17 13:01 ·  中国 广东 茂名 电信
中级用户
★★
积分 396
发帖 183
注册 2007-12-23 06:24
18年会员
UID 106531
性别 男
状态 离线
你们的意思是这个脚本不需要改咯?
6 发表于 2008-05-17 17:24 ·  中国 山东 青岛 联通
系统支持
★★★
积分 1,013
发帖 435
注册 2007-02-08 00:00
19年会员
UID 78999
性别 男
状态 在线
lnk有什么用...好些游戏没有的
7 发表于 2008-05-17 18:48 ·  中国 广东 茂名 化州市 电信
中级用户
★★
积分 396
发帖 183
注册 2007-12-23 06:24
18年会员
UID 106531
性别 男
状态 离线
试想下,能不能用find /v来排除(但是需要排除的太多还不如自己手动去查有用的主程序),或者用findstr /参数来查找,可惜都没有像dir *字母*.exe这样的模糊查找参数

也就是说只要有/? or /*这样的模糊参数,基本我的脚本就完美了
哪位大大能帮我搞定?
8 发表于 2008-05-17 21:56 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
在文件中寻找字符串。

FINDSTR

filename]

/B 在一行的开始配对模式。
/E 在一行的结尾配对模式。
/L 按字使用搜索字符串。
/R 将搜索字符串作为一般表达式使用。
/S 在当前目录和所有子目录中搜索
匹配文件。
/I 指定搜索不分大小写。
/X 打印完全匹配的行。
/V 只打印不包含匹配的行。
/N 在匹配的每行前打印行数。
/M 如果文件含有匹配项,只打印其文件名。
/O 在每个匹配行前打印字符偏移量。
/P 忽略有不可打印字符的文件。
/OFF 不跳过带有脱机属性集的文件。
/A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
/F:file 从指定文件读文件列表 (/ 代表控制台)。
/C:string 使用指定字符串作为文字搜索字符串。
/G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
/D:dir 查找以分号为分隔符的目录列表
strings 要查找的文字。
filename
指定要查找的文件。

除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
"there" 。 'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找
"hello there"。

一般表达式的快速参考:
. 通配符: 任何字符
* 重复: 以前字符或类别出现零或零以上次数
^ 行位置: 行的开始
$ 行位置: 行的终点
字符类别: 任何在字符集中的字符
补字符类别: 任何不在字符集中的字符
范围: 在指定范围内的任何字符
\x Escape: 元字符 x 的文字用法
\<xyz 字位置: 字的开始
xyz\> 字位置: 字的结束

有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。
论坛跳转: