返回列表 发帖

[文本处理] 批处理能否根据文件目录中的某个文件来创建快捷方式?

所有我有个想法。比如
D:\网络游戏   里面有N多游戏。我想知道有什么办法能一次性的把网络游戏里面的run_game.exe  都以快捷方式的方式发送到某一个地方。自动以2级文件夹命名。   比如D:\网络游戏\穿越火线\run_game.exe      快捷方式就自动命名成  穿越火线

比如都发送到d:\游戏快捷方式\这个文件夹,不知道可以做到不··

请问有批处理能实现这个想法吗。谢谢。深夜求助。

本帖最后由 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")COPY

TOP

本帖最后由 qq3475534 于 2011-6-24 19:29 编辑

2# tmplinshi


大哥我试过你的代码很好。可是有个问题。。

比如个别文件夹里没有menu.exe 那么就不行。可否加段代码。写个LOG。 找不到menu.exe的文件夹就写LOG 方便排查。。

还有就是那个ICO图标的问题,不知道可不可以这样呢

我看过游戏当前目录里面都有一个**.ico的文件

批处理可否检测游戏目录ico文件 并自动替换快捷方式图标呢

比如 D:\网络游戏\QQ炫舞
就只查询QQ炫舞 目录
二级目录不查询。

或者是这样。游戏当前目录下的 Game.ICO 替换进去,,我这边是用易游游戏平台的。每个游戏当前目录里都有一个 Game.ICO 的这个文件!!

TOP

我本来想写个“批处理快捷方式”,不过后来仔细一揣测其实写不了(喂,版主,你写的那个可能用不了,run_game.exe  应该虚指游戏的运行程序),一个稍微大点的游戏,其游戏目录里绝对不止一个exe文件,那怎么判断哪个是主运行程序呢?
1.按大小——主运行程序一般是最大的那个exe(一般)
2.按经验——流行游戏知多少。
要写,很难

TOP

本帖最后由 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")COPY

TOP

返回列表