7

假设我正在使用一个批处理文件,并希望它指向位于批处理同一目录中的文件夹。如果我没记错的话,你会写“%~dp0\whateverfoldername”。但是仅仅写“.\whateverfoldername”就不能做到这一点吗?如果是这样,相应命令的区别和/或优势是什么?

4

2 回答 2

17
pushd %~dp0

通常用于更改到启动批处理的原始目录。当用户可以“以管理员身份运行”为您更改当前目录时,这在较新的操作系统中非常有用!有时间试试。做一个简单的蝙蝠

@echo off
echo.CD=%CD%
pushd %~dp0
echo.CD=%CD%
pause

现在运行它。现在在 Vista、Win 7、Win 8、2008 Server 或 2012 Server 上再次“以管理员身份”运行它。走着瞧吧?

于 2013-04-09T00:04:09.260 回答
3

".\将相对于CURRENT目录进行定位,因此如果您使用CD命令更改了目录,那么您将查看THAT目录,而不是批处理所在的目录。

事实上,创建一个单独的目录是很正常的,通常被称为\batch或可能\belfry保存批处理文件。如果有,bat问题位于 上path,它将被定位。%dp0将产生.bat.

于 2013-04-08T23:59:17.557 回答