假设我正在使用批处理文件,并希望将其指向位于批处理同一目录中的文件夹。如果我没错,你会写“%~dp0 \ whateverfoldername”。但只能写“。\ whateverfoldername”不能做同样的事情吗?如果是,那么相应命令的区别和/或优势是什么?
答案 0 :(得分:17)
pushd %~dp0
通常用于更改到启动批处理的原始目录。 当用户可以“以管理员身份运行”为您更改当前目录时,这在较新的操作系统中非常有用!尝试一下。只做一个简单的蝙蝠
@echo off
echo.CD=%CD%
pushd %~dp0
echo.CD=%CD%
pause
现在运行它。 现在再次在Vista,Win 7,Win 8,2008 Server或2012 Server上以“管理员”身份运行它。 看看会发生什么?
答案 1 :(得分:3)
".\
将找到CURRENT
目录,因此如果您使用CD
命令更改了目录,那么您将查看THAT
目录,而不是批处理所在的目录。
事实上,创建一个单独的目录(通常称为\batch
或\belfry
来保存批处理文件)是正常的。如果,bat
位于path
,则会找到它。 %dp0
会产生.bat
的位置。