我已将我的批处理脚本文件夹放在我的PATH环境变量中,因此我可以打开任何命令提示符并可以从任何地方运行它。问题是我将其他文件链接为脚本中的相对路径,因此我需要获取实际脚本的路径。
键入~dp0
仅在运行脚本时为我提供了在命令提示符中所在位置的路径,并为%cd%
提供了相同的路径。我想要实际脚本的位置。这可能吗?
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
:: build a simple batch file in "%sourcedir%" which is NOT on the path
(
ECHO @ECHO OFF
ECHO SETLOCAL
ECHO ECHO %%~dp0
)>"%sourcedir%\q24777129s.bat"
:: Force "%sourcedir%" into the path
SET path=%path%;%sourcedir%
:: execute the batch built
q24777129s
GOTO :EOF
这个小脚本应该证明%~dp0
确实显示了脚本文件的位置。就我而言,它显示U:\sourcedir\
不在(原始)路径上。
如果它不适合您,那么我们需要更多信息,明确指定您正在使用的程序 - 您输入的内容,脚本所在的位置以及批次的确切名称/涉及的可执行文件。