1
我有一個批處理文件,在那裏我創造這樣一些快捷鍵:批處理 - 將重複代碼轉換爲循環?
SET VBFILE=createshortcut.vbs
SET INSTALLPATH=%userprofile%\desktop
SET NETWORKPATH=I:\Program Files\app\Exec
SET TARGET_A=%NETWORKPATH%\myapp-CS.exe
SET LNKNAME_A=The name of the app CS
FOR /F "tokens=1* delims=;" %%B IN ("Set oWS = WScript.CreateObject("WScript.Shell")") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN ("sLinkFile = "%INSTALLPATH%\%LNKNAME_A%.lnk"") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN ("Set oLink = oWS.CreateShortcut(sLinkFile)") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN (" oLink.TargetPath = "%TARGET_A%"") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN (" ' oLink.Arguments = """) DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN (" ' oLink.WorkingDirectory = "%NETWORKPATH%"") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN (" oLink.Save") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
CSCRIPT %INSTALLPATH%\%VBFILE%
DEL %INSTALLPATH%\%VBFILE%
SET TARGET_B=%NETWORKPATH%\myapp-BD.exe
SET LNKNAME_B=The name of the app BD
FOR /F "tokens=1* delims=;" %%B IN ("Set oWS = WScript.CreateObject("WScript.Shell")") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN ("sLinkFile = "%INSTALLPATH%\%LNKNAME_A%.lnk"") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN ("Set oLink = oWS.CreateShortcut(sLinkFile)") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN (" oLink.TargetPath = "%TARGET_B%"") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN (" ' oLink.Arguments = """) DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN (" ' oLink.WorkingDirectory = "%NETWORKPATH%"") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
FOR /F "tokens=1* delims=;" %%B IN (" oLink.Save") DO ECHO %%B>>%INSTALLPATH%\%VBFILE%
CSCRIPT %INSTALLPATH%\%VBFILE%
DEL %INSTALLPATH%\%VBFILE%
有減少repeatative代碼,並把它放在GOTO語句或for循環的方法嗎?
用GOTO,我找不到一種方法來回到GOTO被調用的地方。在for循環中,我無法找出在每次迭代中用新值覆蓋變量的好方法。
你會建議什麼?