批处理:如何在快捷方式不存在时创建快捷方式

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