Windows 批处理文件引用到自己的目录

rwa*_*ace 5 windows command-line batch-file

假设您有C:\foo\foo.batwhich 需要参考C:\foo\foo.txt. 它可以从不同的目录运行,但需要foo.txt从它自己的目录中获取,而不是从当前目录中获取。显然,这可以通过将完整路径C:\foo\foo.txt放入foo.bat.

扭曲的是,在编写批处理文件时不知道它最终会驻留在用户机器上的哪个位置,所以批处理文件实际需要做的是从我住的目录中获取 foo.txt,无论在哪里恰好是。(在我使用的 C 程序中,argv[0]但这似乎不适用于批处理文件。)

有没有办法做到这一点?

Pyl*_*lsa 14

%~dp0
Run Code Online (Sandbox Code Playgroud)

将为您提供脚本的完整路径。

%~f0
Run Code Online (Sandbox Code Playgroud)

将为您提供脚本的完整路径,包括脚本名称。