比方说,我正在使用一个batch file,并希望它指向位于同一批处理目录中的文件夹。 如果我没有错,你会写“%〜dp0 \ anyfoldername”。 但是不能通过写“。\ anyfoldername”来完成。 如果是这样,各个命令有什么区别和/或优点?
pushd %~dp0
通常用于更改为启动批处理的原始目录。 当用户可能以“管理员身份”运行时,这对于更新的操作系统非常有用,它将为您更改当前目录! 尝试一下。 只要一个简单的蝙蝠
@echo off echo.CD=%CD% pushd %~dp0 echo.CD=%CD% pause
现在运行它。 现在,在Vista,Win 7,Win 8,2008 server或2012 server上再次运行“以管理员身份”。 走着瞧吧?
".\
将相对于CURRENT
目录进行定位,因此,如果用CD
命令更改了目录,则将查看THAT
目录,而不是批处理目录。
实际上,创建一个单独的目录是很正常的,通常称为\batch
或者\belfry
来保存批处理文件。 如果,bat
位于path
,它将被定位。 %dp0
将产生.bat
的位置。