我想创建几个批处理文件来自动化一个程序。

我的问题是,当我创建批处理文件时,当前目录是什么? 它是文件所在的目录,还是命令提示符中显示的相同目录,还是其他什么?


当前回答

它通常是批处理文件启动的目录,但如果从快捷方式启动批处理文件,则可以给出不同的启动目录。此外,当您在cmd中,并且当前目录是c:\dir3时,您仍然可以使用c:\dir1\dir2\batch.bat启动批处理文件,在这种情况下,当前目录将是c:\dir3。

其他回答

% __cd__ %, % cd %, %= c:%

还有另一个动态变量%__CD__%指向当前目录,但与%CD%不同,它在末尾有一个反斜杠。 如果您想将文件追加到当前目录,这可能很有用。此外,%CD%在禁用扩展环境下不工作,但%__CD__%总是工作。

使用%=C:% %=D:%,您可以访问对应驱动器的最后一次访问目录。如果这个变量没有定义,那么您还没有访问当前cmd会话上的驱动器。

%__APPDIR__%展开到运行当前脚本的可执行文件,也就是cmd.exe目录。

假设您正在打开当前目录中的一个文件。命令如下:

 start %cd%\filename.filetype

我希望我回答了你的问题。

它是启动批处理文件的目录。例如,如果你的批处理在c:\dir1\dir2,你执行cd c:\dir3,然后运行批处理,当前目录将是c:\dir3。

您的bat文件应该在您打开它时bat文件所在的目录中。然而,如果你想把它放到一个不同的目录,你可以使用cd[任意目录]

它是运行命令以执行批处理文件的目录。

正如上面的答案所提到的,你可以在你的脚本中添加以下命令来验证:

> set current_dir=%cd%
> echo %current_dir%