![Windows 批处理文件引用自己的目录](https://linux22.com/image/1265573/Windows%20%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E5%BC%95%E7%94%A8%E8%87%AA%E5%B7%B1%E7%9A%84%E7%9B%AE%E5%BD%95.png)
假设您有C:\foo\foo.bat
需要引用的C:\foo\foo.txt
。它可能从不同的目录运行,但需要foo.txt
从其自己的目录(而不是当前目录)获取。显然,这可以通过将完整路径放在C:\foo\foo.txt
中来完成foo.bat
。
问题是,在编写批处理文件时并不知道它最终会驻留在用户机器上的什么位置,因此批处理文件实际上需要做的是从我所在的目录获取 foo.txt,无论它在哪儿. (在我使用的 C 程序中argv[0]
但它似乎不适用于批处理文件。)
有没有办法做到这一点?
答案1
%~dp0
将为您提供脚本的完整路径。
%~f0
将为您提供脚本的完整路径,包括脚本名称。