windows - 批处理:当快捷方式不存在时如何创建快捷方式
问题描述
嗨,我是批处理/命令行的新成员。
仅当快捷方式/文件尚不存在时,我才想创建应用程序的快捷方式。我编写了创建短路的部分,如果它不在条件 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\000_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\000_DF_P\SF - Tks.accdb" >> %SCRIPT%
echo oLink.IconLocation = "destination_icon" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
)
pause
推荐阅读
- php - Symfony 4:Unsezialise(),["allowed_classes" => false] 错误
- python - 列表是否在 python 'for' 循环的每次迭代中实例化?
- python - 在散点图中可视化文本类
- powershell - PowerShell如何为外部文件中的每个条目运行一次命令
- tensorflow2.0 - 在 Windows 上使用 tensorflow-text 的解决方案(或解决方法)
- jms - StatisticsPlugin 中“大小”的值始终为 0
- continuous-integration - Helm Chart 版本
- python - 在python的同一行中使用if else for和del?
- python - 将现有的 numpy 直方图转换为提升直方图
- r - R:合并两个数据帧而不增加行