批处理:如何在快捷方式不存在时创建快捷方式
Batch : How can I create a shortcut when it does not exist
嗨,我是 batch/command 行的新人。
我只想在 shortcut/file 不存在的情况下创建应用程序的快捷方式。我写了创建短片的部分,如果它不在 IF 条件下就可以工作,但是当它在里面时,什么也不会发生。
这是代码:
@echo off
if exist "C:\Users\%USERNAME%\Desktop\Tks.lnk" (
echo file
) else (
echo not file
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\Tks.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "C:\Users\%USERNAME%\Documents[=10=]0_DF_P\SF - Tks.accdb" >> %SCRIPT%
echo oLink.IconLocation = "destination_icon" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
)
pause
谢谢
有一些问题需要避免,也有其他方法可以避免,但只是为了更正您的尝试。
使用 ^)
将定义移至开头并转义内部 else )
@echo off
set "SCRIPT=%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
if exist "C:\Users\%USERNAME%\Desktop\Tks.lnk" (
echo file
) else (
echo not file
echo Dim oWS >> %SCRIPT%
echo Set oWS = WScript.CreateObject("WScript.Shell"^) >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\Tks.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile^) >> %SCRIPT%
echo oLink.TargetPath = "C:\Users\%USERNAME%\Documents[=10=]0_DF_P\SF - Tks.accdb" >> %SCRIPT%
echo oLink.IconLocation = "destination_icon" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
)
pause
嗨,我是 batch/command 行的新人。
我只想在 shortcut/file 不存在的情况下创建应用程序的快捷方式。我写了创建短片的部分,如果它不在 IF 条件下就可以工作,但是当它在里面时,什么也不会发生。
这是代码:
@echo off
if exist "C:\Users\%USERNAME%\Desktop\Tks.lnk" (
echo file
) else (
echo not file
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\Tks.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "C:\Users\%USERNAME%\Documents[=10=]0_DF_P\SF - Tks.accdb" >> %SCRIPT%
echo oLink.IconLocation = "destination_icon" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
)
pause
谢谢
有一些问题需要避免,也有其他方法可以避免,但只是为了更正您的尝试。
使用 ^)
@echo off
set "SCRIPT=%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
if exist "C:\Users\%USERNAME%\Desktop\Tks.lnk" (
echo file
) else (
echo not file
echo Dim oWS >> %SCRIPT%
echo Set oWS = WScript.CreateObject("WScript.Shell"^) >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\Tks.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile^) >> %SCRIPT%
echo oLink.TargetPath = "C:\Users\%USERNAME%\Documents[=10=]0_DF_P\SF - Tks.accdb" >> %SCRIPT%
echo oLink.IconLocation = "destination_icon" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
)
pause