基本上,我的脚本中的所有内容都工作,并将txt文件保存到带有该行的c:/驱动器中
“>> c:/information.txt”
但我希望它保存在打开它的批处理文件的位置。
%~dp0
仅适用于.bat文件脚本。它不会在交互式命令提示符下工作。
@ECHO OFF
(ECHO Hello World)>>"%~dp0information.txt"
您可以使用相对路径[1]来执行此操作,该路径是相对于当前位置的路径:
echo Hello World >>"information.txt"
你也可以用绝对路径来做。批处理文件的路径存储在%0
(=每个批处理文件的第一个参数)[2]中,并且可以修改为驱动器%~d0
和批处理文件的路径%~p0
。您可以轻松地将两者结合起来以获得驱动器的路径:%~dp0
。 [3]
echo Hello World >>"%~dp0information.txt"
在大多数情况下,两种方法的行为都相同,但我建议使用第二种方法,因为当前目录并不总是批处理文件的目录:如果从其他目录执行批处理(例如,使用另一个批处理),将此作为相对路径的目录。
[1] https://en.wikipedia.org/wiki/Path_(computing)#Absolute_and_relative_paths
[2] http://www.robvanderwoude.com/parameters.php
[3]调用和命令的cmd帮助中包含的完整修改列表:call/?
我已经弄明白了我的问题。一切都保持不变,除了我删除“c:/”我在我的脚本顶部添加了“Pushd%~dp0”。