标题: [文本处理] 批处理能否根据文件目录中的某个文件来创建快捷方式? [打印本页]
作者: qq3475534 时间: 2011-6-24 01:56 标题: 批处理能否根据文件目录中的某个文件来创建快捷方式?
所有我有个想法。比如
D:\网络游戏 里面有N多游戏。我想知道有什么办法能一次性的把网络游戏里面的run_game.exe 都以快捷方式的方式发送到某一个地方。自动以2级文件夹命名。 比如D:\网络游戏\穿越火线\run_game.exe 快捷方式就自动命名成 穿越火线
比如都发送到d:\游戏快捷方式\这个文件夹,不知道可以做到不··
请问有批处理能实现这个想法吗。谢谢。深夜求助。
作者: tmplinshi 时间: 2011-6-24 13:01
本帖最后由 tmplinshi 于 2011-6-24 13:02 编辑
- @echo off
-
- set "dir_game=D:\网络游戏"
- set "dir_lnk=d:\游戏快捷方式"
- set "file=run_game.exe"
-
- for /f "delims=" %%f in (' dir /a:-d /b /s "%dir_game%\%file%" ') do (
- for %%d in ("%%f\..") do (
- call :CreateShort "%%f" "%dir_lnk%\%%~nxd"
- )
- )
- exit /b
-
- :CreateShort
- mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
复制代码
作者: Hello123World 时间: 2011-6-24 15:52
我本来想写个“批处理快捷方式”,不过后来仔细一揣测其实写不了(喂,版主,你写的那个可能用不了,run_game.exe 应该虚指游戏的运行程序),一个稍微大点的游戏,其游戏目录里绝对不止一个exe文件,那怎么判断哪个是主运行程序呢?
1.按大小——主运行程序一般是最大的那个exe(一般)
2.按经验——流行游戏知多少。
要写,很难
作者: qq3475534 时间: 2011-6-24 19:20
本帖最后由 qq3475534 于 2011-6-24 19:29 编辑
2# tmplinshi
大哥我试过你的代码很好。可是有个问题。。
比如个别文件夹里没有menu.exe 那么就不行。可否加段代码。写个LOG。 找不到menu.exe的文件夹就写LOG 方便排查。。
还有就是那个ICO图标的问题,不知道可不可以这样呢
我看过游戏当前目录里面都有一个**.ico的文件
批处理可否检测游戏目录ico文件 并自动替换快捷方式图标呢
比如 D:\网络游戏\QQ炫舞
就只查询QQ炫舞 目录
二级目录不查询。
或者是这样。游戏当前目录下的 Game.ICO 替换进去,,我这边是用易游游戏平台的。每个游戏当前目录里都有一个 Game.ICO 的这个文件!!
作者: tmplinshi 时间: 2011-6-24 20:17
本帖最后由 tmplinshi 于 2011-6-24 20:38 编辑
- @echo off
-
- set "dir_game=D:\网络游戏"
- set "dir_lnk=d:\游戏快捷方式"
- set "file=run_game.exe"
-
- for %%i in (error no_exe no_ico) do set %%i=
- for /f "delims=" %%f in (' dir /a:-d /b /s "%dir_game%\%file%" ') do (
- setlocal
- if not exist "%%~dpf\menu.exe" set /a error = 1, no_exe = 1
- if not exist "%%~dpf\Game.ICO" set /a error = 1, no_ico = 1
- if not defined error (
- for %%d in ("%%f\..") do (
- call :CreateShort "%%f" "%dir_lnk%\%%~nxd" "%%~dpfGame.ICO"
- )
- ) else (
- echo %%~dpf
- if defined no_exe echo 缺少 menu.exe
- if defined no_ico echo 缺少 Game.ICO
- ) >>CreateShort.log
- endlocal
- )
- exit /b
-
- :CreateShort
- mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.IconLocation=""%~3"":b.Save:close")
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |