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