我想创建几个批处理文件来自动化一个程序。
我的问题是,当我创建批处理文件时,当前目录是什么? 它是文件所在的目录,还是命令提示符中显示的相同目录,还是其他什么?
我想创建几个批处理文件来自动化一个程序。
我的问题是,当我创建批处理文件时,当前目录是什么? 它是文件所在的目录,还是命令提示符中显示的相同目录,还是其他什么?
当前回答
它是运行命令以执行批处理文件的目录。
正如上面的答案所提到的,你可以在你的脚本中添加以下命令来验证:
> set current_dir=%cd%
> echo %current_dir%
其他回答
在批处理文件中:
%cd%指当前工作目录(变量) %~dp0表示批处理文件目录的完整路径(静态) %~dpnx0和%~f0都是批处理目录和文件名的完整路径(静态)。
请参见:%~dp0是什么意思,它是如何工作的?
您的bat文件应该在您打开它时bat文件所在的目录中。然而,如果你想把它放到一个不同的目录,你可以使用cd[任意目录]
它是运行命令以执行批处理文件的目录。
正如上面的答案所提到的,你可以在你的脚本中添加以下命令来验证:
> set current_dir=%cd%
> echo %current_dir%
它通常是批处理文件启动的目录,但如果从快捷方式启动批处理文件,则可以给出不同的启动目录。此外,当您在cmd中,并且当前目录是c:\dir3时,您仍然可以使用c:\dir1\dir2\batch.bat启动批处理文件,在这种情况下,当前目录将是c:\dir3。
这只是我的个人意见。 如果从放置在pendrive上的批处理文件(Windows 7)调用以下命令会失败:
%SystemRoot%\System32\xcopy.exe /e /i "%cd%Ala" "C:\KS\Ala\"
但这是可行的:
%SystemRoot%\System32\xcopy.exe /e /i "%~dp0Ala" "C:\KS\Ala\"