“%〜dp0”和“。\”之间的区别?

比方说,我正在使用一个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的位置。