Windows 10 批处理文件的快捷方式相对路径(适用于便携式应用程序)

Windows 10 批处理文件的快捷方式相对路径(适用于便携式应用程序)

早上好!尝试制作一组​​可移植的批处理文件来帮助测试另一个程序。我有我想要的批处理文件及其各自的相对路径,但现在我正尝试使用相对路径在 Windows 10 中创建快捷方式 (.lnk),以便我可以向其他人分发我的程序。问题是我在 Windows 10 中尝试的每种方法都无法执行我的批处理文件。我将快捷方式设置为以管理员身份运行,并将批处理文件放在与快捷方式相同的文件夹中。我想要快捷方式的原因是因为快捷键选项,它允许我更快地进行测试。我只想能够在与快捷方式相同的文件夹中启动批处理文件。为了使事情变得简单,我删除了所有空格,甚至尝试了一个子文件夹,但使用上述任何方法(通过 Explorer.exe 或 CMD.exe 启动)都没有成功。除了不是真正的相对路径之外,还有其他想法吗?我之所以说是真正的相对路径,是因为有些人建议使用带有完整文件路径的环境变量来设置变量,并以某种方式考虑将该变量称为相对路径。

答案1

我将使用临时的 VBScript 来创建快捷方式:

@echo off
(
echo Option Explicit
echo Dim WshShell, CurDir, oShortcut, ShortcutName
echo ShortcutName = "Name of your shortcut"
echo ' Next line is removable
echo MsgBox^("Hi! This is a demo script showing how to create shortcut in current folder."^)
echo Set WshShell = CreateObject^("WSCript.Shell"^)
echo CurDir = "%cd%"
echo oShortcut = WSHShell.CreateShortcut^(CurDir ^& "\" ^& ShortcutName ^& ".lnk"^)
echo With oShortcut
echo  .TargetPath = Curdir ^& "\" ^& "%~nx0"
echo  .WindowStyle = 4
echo  .IconLocation = "cmd.exe"
echo  .Save
echo End With
echo ' Next line is removable
echo MsgBox^("Done!"^)
) >>CrShortcut.vbs
cscript //nologo CrShortcut.vbs
del /f /q CrShortcut.vbs
REM Next line is omittable
pause >nul 2>&1
REM Continue here
exit /b 0

答案2

cd "%~dp0" 设置命令提示符,使用批处理文件的目录作为其工作目录。

相关内容