[英]Difference between “%~dp0” and “.\”?
假设我正在使用一个批处理文件,并希望它直接定向到位于该批处理相同目录中的文件夹。 如果我没看错,您可以输入“%〜dp0 \\ whateverfoldername”。 但是仅写“。\\ whateverfoldername”就不能做到吗? 如果是这样,相应命令的区别和/或优势是什么?
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
的位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.