如果从不同的位置运行批处理脚本的文件夹的任何方法?

时间:2014-07-16 09:28:43

标签: windows batch-file path

我已将我的批处理脚本文件夹放在我的PATH环境变量中,因此我可以打开任何命令提示符并可以从任何地方运行它。问题是我将其他文件链接为脚本中的相对路径,因此我需要获取实际脚本的路径。

键入~dp0仅在运行脚本时为我提供了在命令提示符中所在位置的路径,并为%cd%提供了相同的路径。我想要实际脚本的位置。这可能吗?

1 个答案:

答案 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\不在(原始)路径上。

如果它不适合您,那么我们需要更多信息,明确指定您正在使用的程序 - 您输入的内容,脚本所在的位置以及批次的确切名称/涉及的可执行文件。