批处理文件中的当前目录是什么?

时间:2010-12-12 00:54:59

标签: batch-file directory

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

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

9 个答案:

答案 0 :(得分:870)

在批处理文件中:

  • %cd%是指current working directory(变量)
  • %~dp0指的是批处理文件目录的完整路径(静态)
  • %~dpnx0指的是批处理目录和文件名(静态)的完整路径。

答案 1 :(得分:23)

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

答案 2 :(得分:9)

在批处理文件中,%cd%是当前目录最常用的命令,尽管您可以设置自己的变量:

set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)

所以说你想要打开Myprog.exe。如果它在同一文件夹中,您将使用命令:

start %mypath%\Myprog.exe

这会从当前文件夹打开Myprog。

另一种选择是在C中创建一个名为AutomatePrograms的目录。然后,将文件传输到该文件夹​​,然后可以使用以下命令打开它们:

start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"

答案 3 :(得分:4)

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

答案 4 :(得分:4)

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

如上面的答案所述,您可以将以下命令添加到脚本中以验证:

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

答案 5 :(得分:3)

假设您在当前目录中打开了一个文件。命令是:

 start %cd%\filename.filetype

我希望我回答你的问题。

答案 6 :(得分:0)

%__CD__%%CD%%=C:%

还有另一个动态变量 %__CD__% ,它指向当前目录,但与 %CD% 一样,它的末尾都有反斜杠。 如果要将文件追加到当前目录,此功能很有用。

使用 %=C:% %=D:% ,您可以访问相应驱动器的上次访问目录。如果未定义该变量,则说明您尚未在当前cmd会话中访问驱动器。

然后%__APPDIR__%扩展为运行当前脚本cmd.exe目录的可执行文件。

答案 7 :(得分:0)

您的 bat 文件应该在您打开 bat 文件时所在的目录中。但是,如果您想将其放入其他目录,您可以使用 cd [whatever directory]

答案 8 :(得分:-2)

只有我的2美分。 如果从放置在pendrive上的批处理文件(Windows 7)中调用,以下命令将失败:

xcopy /s /e /i %cd%Ala C:\KS\Ala

但这可以完成工作:

xcopy /s /e /i %~dp0Ala C:\KS\Ala