【问题标题】:How do I combine a path with a string in batch? [closed]如何将路径与字符串批量组合? [关闭]
【发布时间】:2026-02-02 18:55:01
【问题描述】:

我想要一个批处理文件来检测其当前路径,然后将其路径与“扩展名”结合起来以了解存储在子目录中的文件的路径。

这是我尝试但失败的方法:

SET mypath = %~dp0
SET newpath = %mypath% and \anotherFolder\MyProgram.exe
echo oLink.TargetPath = %newpath% >> %SCRIPT%

【问题讨论】:

  • 为变量赋值的最佳实践; SET "mypath=%~dp0" 所以第二个变量是:SET "newpath=%mypath%\anotherFolder\MyProgram.exe" 不要使用空格。

标签: batch-file path


【解决方案1】:

以下示例可能对您有所帮助:

@Set "SCRIPT=%TEMP%\LinkMaker-%RANDOM%-%RANDOM%.vbs"
@Set "MYPATH=%~dp0anotherFolder"
@Set "MYEXE=MyProgram.exe"
@Set "MYLNK=test.lnk"
@(  Echo Set Shell = CreateObject("WScript.Shell"^)
    DesktopPath = Shell.SpecialFolders("Desktop"^)
    Set link = Shell.CreateShortcut(DesktopPath & "\%MYLNK%"^)
    link.Arguments = "1 2 3"
    link.Description = "test shortcut"
    link.HotKey = "CTRL+ALT+SHIFT+X"
    link.IconLocation = "%MYPATH%\%MYEXE%,1"
    link.TargetPath = "%MYPATH%\%MYEXE%"
    link.WindowStyle = 3
    link.WorkingDirectory = "%MYPATH%"
    link.Save) 1> "%SCRIPT%"
@"%SystemRoot%\System32\cscript.exe" //NoLogo "%SCRIPT%" && Del "%SCRIPT%"

(我没有为%~dp0 创建一个单独的变量,因为它并不是真正需要的)

【讨论】: