结合批处理,shortcuts可以实现批量创建和修改快捷键,但是在实际中遇到一个问题。那就是如果shortcuts创建或修改快捷键的/P参数或者/W参数或者/I参数中存在带空格的路径,那么创建快捷方式就会失败,而快捷键参数的路径中如果本身存在空格,那么本身就要求使用引号来包括路径,因而产生了冲突。如何解决这个问题呢?如目标为"D:\UGS\NX 6.0\MACH\auxiliary\cls2clf.bat" 参数为"D:\UGS\NX 6.0\" 工作路径为"D:\UGS\NX 6.0\MACH\auxiliary\",图标为“D:\UGS\NX 6.0\UGTO2D\ugto2d.ico,0”的快捷方式使用shortcuts创建时就会失败。
下面是批处理文件和我的打包的快捷方式,大家测试下如何解决这个问题下面的程序中BS是字符替换工具,替换任意指定的字符。
[ Last edited by HUNRYBECKY on 2008-8-4 at 08:23 AM ]
下面是批处理文件和我的打包的快捷方式,大家测试下如何解决这个问题下面的程序中BS是字符替换工具,替换任意指定的字符。
@ECHO OFF
REM 当改变了文件路径后批量替换(修复)快捷方式.变量LNKPATH为需要替换的快捷方式文件夹的路径;OLDPATH为原始文件安装路径;NEWPATH为新的移动路径
REM 假设安装了CATIA后移动了文件路径或者要制作绿色CATIA,那么快捷方式路径应该做相应变化
SET LNKPATH="%ALLUSERSPROFILE%\「开始」菜单\程序\【HYSOFT】\UGSNX6绿色精简版"
SET OLDPATH="D:\UGS
SET NEWPATH="D:\PROGRAMS PROFILES\UGS"
SET PATH=%CD%;%CD%\GTOOLS\;%PROGRAMFILES%\WINRAR;%PATH%
IF NOT EXIST ".\GTOOLS\BS.exe" SET ERR=安装支持目录下缺少字符替换工具,安装程序无法继续&&GOTO:ERROR
IF NOT EXIST ".\GTOOLS\SC.exe" SET ERR=安装支持目录缺少快捷方式创建工具,安装程序无法继续&&GOTO:ERROR
FOR /F "DELIMS=" %%I IN ('DIR /B/S "%LNKPATH%\*.LNK"') DO (
SC /F:"%%I" /A:Q>"%TEMP%\SCUT.TXT"
BS "%TEMP%\SCUT.TXT" %OLDPATH% %NEWPATH% /I>NUL&CLS
setlocal enabledelayedexpansion
FOR /F "TOKENS=1,* DELIMS==" %%A IN (%TEMP%\SCUT.TXT) DO CALL SET %%A=%%B
IF EXIST "!TargetPath!" SC.EXE /F:"%%I" /A:E /T:"!TargetPath!" /P:"!Arguments!" /W:"!WorkingDirectory!" /I:"!IconLocation!" /D:"鸿越软件"
endlocal
)
SET ERR=替换修复完成,谢谢您使用鸿越软件制作的该工具&&GOTO:ERROR
:ERROR
>"%TEMP%\Temp.vbs" Echo intAnswer = MsgBox("%ERR%" , vbYes, "鸿越软件温馨提示您!")
cscript //nologo "%TEMP%\Temp.vbs"
EXIT
[ Last edited by HUNRYBECKY on 2008-8-4 at 08:23 AM ]
附件
