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

时间:2013-04-08 23:32:41

标签: windows batch-file cmd

假设我正在使用批处理文件,并希望将其指向位于批处理同一目录中的文件夹。如果我没错,你会写“%~dp0 \ whateverfoldername”。但只能写“。\ whateverfoldername”不能做同样的事情吗?如果是,那么相应命令的区别和/或优势是什么?

2 个答案:

答案 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的位置。