假设我希望从批处理脚本本身中获取批处理脚本的绝对路径,但不要在其后加反斜杠。通常,我这样做:

SET BuildDir=%~dp0
SET BuildDir=%BuildDir:~0,-1%

第一条语句获取带有尾部反斜杠的路径,第二行删除最后一个字符,即反斜杠。有没有办法将这两个语句合并为一行代码?

最佳答案

对于许多软件,添加尾随点在语义上是等效的,而不是除去尾随的反斜杠。

C:\ Windows 等效于 C:\ Windows \。

echo %dp0
>C:\Windows\

echo %dp0.
>C:\Windows\.

例如,robocopy仅接受没有尾随空格的目录。

这是错误的:
robocopy "C:\myDir" %~dp0

这是成功的:
robocopy "C:\myDir" %~dp0.

09-10 02:27