📄 批量跑快捷.cmd
字号:
@echo off&&color 07
cls
echo.
echo.
echo ╭─────────────────────────────────────╮
echo │ │
echo │ 批量跑快捷.cmd 9z于2008.9.6 http://693985.qzone.qq.com │
echo │ │
echo │ 目的: 自动查找出文件夹下所有子文件夹里的快捷方式并建立到到桌面,是绿色软 │
echo │ 件爱好者和电脑公司必备工具, 经常整理软件的个人用户使用起来更是方便。 │
echo │ │
echo │ 使用方法: 把所需要处理的文件夹拖到这个程序上面,或者把程序放到文件夹中执 │
echo │ 行,放到桌面或c:\时会查找G盘到D盘下并选择最近的一个\tools文件夹 │
echo │ │
echo │ 要求: 1. 用户事先把需建快捷方式的软件在相应目录中都建立一次快捷方式,如 │
echo │ 果今后这个目录被更改了位置,批处理将自动更正生成新的快捷方式。 │
echo │ │
echo │ 2. 用户对要注册绿化类的软件建立名字要包含有“注册、绿化、安装、汉 │
echo │ 化、设置、破解"字样的批处理、执行文件或注册表文件。 │
echo │ │
echo │ 3. 对不需要建立快捷方式而又要运行的注册表、程序、批处理请更名包含 │
echo │ 为“关联”字样。 │
echo │ │
echo ╰─────────────────────────────────────╯
set desk=C:\Documents and Settings\All Users\桌面
rem 不想使用查找注册文件功能请把上面这句桌面位置更改为“set desk=nul\"
set filetmp=%cd%
if /i "%cd%" neq "c:\" if "%cd%" neq "C:\Documents and Settings\%username%\桌面" goto BEGIN
if exist g:\tools\nul set filetmp=g:\tools
if exist f:\tools\nul set filetmp=f:\tools
if exist e:\tools\nul set filetmp=e:\tools
if exist d:\tools\nul set filetmp=d:\tools
:BEGIN
echo.
if "%1" gtr "" set filetmp="%1"
echo 将对%cd%进行处理,按任意键开始,否则请关闭本窗口,报错请联系作者博客...
pause >nul
echo.
echo.
cd /d %filetmp%&& echo cd /d %filetmp%>c:\dirtmplog.bat
setlocal enabledelayedexpansion
echo 请耐心等待,硬盘灯亮完开始闪烁时就快了,程序将把%cd%下子目录里的快捷方式修
echo 正并全放到桌面,同时查找同级文件夹是否有安装脚本,如果有的话会处动安装...
echo ===============================================================================
echo.
:BEGIN
for /f "delims=" %%i in ('dir *.lnk /s /b') do (
del c:\tmp.log >nul 2>nul
set filetmp=%%~nxi&&set j=
rem 上面一句取得tools下每一文件快捷方式文件路径+文件名,路径=%%~dpi,文件名=%%~nxi
cd "%%~dpi"
find /i /c "%%~dpi" "%%~nxi">nul&&echo ..!filetmp!&© "!filetmp!" "C:\Documents and Settings\All Users\桌面\">nul || (
find /i /c "http://" "!filetmp!">nul||echo ok>c:\tmp.log
)
if exist c:\tmp.log for /f "delims=" %%j in ('find ":" "!filetmp!" ^|findstr /r "^[A-z]:[\\]"') do set j=%%~nxj&&echo !j!>c:\tmp.log
if exist !j! (
set filetmp=!filetmp:~0,-4!.url &&rem 把扩展名换成.url,有些快捷方式被改成中文,所以保持原名
echo .LNK路径不对,在桌面另生成:!filetmp!===
rem 以下几句生成url文件
(echo [InternetShortcut] && echo URL=File:///%%~dpi!j! && echo WorkingDirectory=%%~dpi
echo ShowCommand= && echo IconFile=%%~dpi!j! && echo IconIndex=^0 && echo HotKey=)>"C:\Documents and Settings\All Users\桌面\!filetmp!"
)
if exist "%desk%\!filetmp!" (
set j=!filetmp:快捷方式=!
set j=!j:.exe=!
if "!filetmp!" neq "!j!" if exist "%desk%\!j!" del "%desk%\!j!"
ren "%desk%\!filetmp!" "!j!"
set filetmp=
for /f "delims=" %%j in ('dir *set*.reg *set*.cmd *set*.bat /b 2^>nul') do set filetmp=%%j
for /f "delims=" %%j in ('dir *reg*.reg *reg*.cmd *reg*.exe *reg*.bat /b 2^>nul') do set filetmp=%%j
for /f "delims=" %%j in ('dir *汉化*.reg *汉化*.cmd *汉化*.exe *汉化*.bat /b 2^>nul') do set filetmp=%%j
for /f "delims=" %%j in ('dir *设置*.reg *设置*.cmd *设置*.exe *设置*.bat /b 2^>nul') do set filetmp=%%j
for /f "delims=" %%j in ('dir *注册*.reg *注册*.cmd *注册*.exe *注册*.bat /b 2^>nul') do set filetmp=%%j
for /f "delims=" %%j in ('dir *绿化*.reg *绿化*.cmd *绿化*.exe *绿化*.bat /b 2^>nul') do set filetmp=%%j
for /f "delims=" %%j in ('dir *安装*.reg *安装*.cmd *安装*.exe *安装*.bat /b 2^>nul') do set filetmp=%%j
for /f "delims=" %%j in ('dir *破解*.reg *破解*.cmd *破解*.exe *破解*.bat /b 2^>nul') do set filetmp=%%j
if "!filetmp:un=!" gtr "!filetmp!" (set filetmp=) else (if "!filetmp:卸=!" gtr "!filetmp!" set filetmp=)
if "!filetmp!" gtr "" echo -----找到并注册:!cd!\的"!filetmp!"&&if /i "!filetmp:~-3!"=="reg" (call regedit /s !filetmp!
) else (
ren "^!!filetmp!" "!filetmp!" > nul 1>nul 2>nul &&更名去掉“!”
type !filetmp!|find /i /v "pause" >c:\tmp.log && rem 去掉文件中的pause,更改exit为exit /b不退出cmd.exe
echo @echo off >tmp.bat
type c:\tmp.log|find /i /v "exit" >>tmp.bat
set filetmp="!cd!"
call cmd /c tmp.bat
cd /d !filetmp!&&del tmp.bat&&color 07&&echo off
)
)
)
)
echo.
echo.
echo ===============================================================================
:关联
echo.
echo 快捷方式建立完毕,开始关联文件,有关联字样的程序将不把快捷方式发送到桌面...
echo ===============================================================================
call c:\dirtmplog.bat && del c:\dirtmplog.bat
for /f "delims=" %%i in ('dir *关联*.exe *关联*.bat *关联*.reg *关联*.cmd *关连*.exe *关连*.bat *关连*.reg *关连*.cmd /s /b') do (
set filetmp=%%~nxi&&set j=
rem 上面一句取得tools下每一文件快捷方式文件路径+文件名,路径=%%~dpi,文件名=%%~nxi
cd "%%~dpi"
if "!filetmp:原=!" gtr "!filetmp!" (set filetmp=) else (if "!filetmp:卸=!" gtr "!filetmp!" set filetmp=)
if "!filetmp!" gtr "" echo ..!cd!\"!filetmp!"&&if /i "!filetmp:~-3!"=="reg" (call regedit /s !filetmp!
) else (
ren "^!!filetmp!" "!filetmp!" > nul 1>nul 2>nul &&更名去掉“!”
type !filetmp!|find /i /v "pause" >c:\tmp.log && rem 去掉文件中的pause,更改exit为exit /b不退出cmd.exe
echo @echo off >tmp.bat
type c:\tmp.log|find /i /v "exit" >>tmp.bat
set filetmp="!cd!"
call tmp.bat
cd /d !filetmp!&&del tmp.bat&&color 07&&echo off
)
)
echo.
echo ===============================================================================
:END
del c:\tmp.log >nul 2>nul
echo.
echo.
echo 任务完成,按任意键或关掉窗口退出...........
pause >nul
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -