我想创建几个批处理文件来自动化一个程序。
它是启动批处理文件的目录。例如,如果你的批处理在c:\dir1\dir2,你执行cd c:\dir3,然后运行批处理,当前目录将是c:\dir3。
c:\dir1\dir2
cd c:\dir3
c:\dir3
通常是批处理文件的启动目录,但如果您从快捷方式启动批处理文件,则可以给出不同的启动目录。此外,当您在cmd中,并且当前目录是c:\dir3时,您仍然可以使用c:\dir1\dir2\batch.bat启动批处理文件,在这种情况下,当前目录将是c:\dir3。
c:\dir1\dir2\batch.bat
在批处理文件中:
%cd%
%~dp0
%~dpnx0
%~f0
参见:%~dp0是什么意思,它是如何工作的?
假设您正在打开当前目录中的一个文件。命令如下:
start %cd%\filename.filetype
我希望我回答了你的问题。
在批处理文件中,%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"
它是运行命令以执行批处理文件的目录。
正如上面的答案所提到的,你可以在你的脚本中添加以下命令来验证:
> set current_dir=%cd% > echo %current_dir%
这只是我的个人意见。 如果从放置在pendrive上的批处理文件(Windows 7)中调用以下命令,则会失败
%SystemRoot%\System32\xcopy.exe /e /i "%cd%Ala" "C:\KS\Ala\"
但这是可行的:
%SystemRoot%\System32\xcopy.exe /e /i "%~dp0Ala" "C:\KS\Ala\"
%__CD__%
%CD%
使用%=C:% %=D:%,您可以访问相应驱动器的最后一次访问目录。如果这个变量没有定义,那么您还没有访问当前cmd会话上的驱动器。
%=C:%
%=D:%
%__APPDIR__%扩展为运行当前脚本的可执行文件,也就是cmd.exe目录。
%__APPDIR__%
cmd.exe
您的bat文件应该在您打开它时bat文件所在的目录中。但是如果你想把它放到一个不同的目录中,你可以使用cd [whatever directory]
cd [whatever directory]