Joe*_*ech 32 command-line batch-file
假设我希望从批处理脚本本身获取批处理脚本的绝对路径,但没有尾部反斜杠.通常,我这样做:
SET BuildDir=%~dp0
SET BuildDir=%BuildDir:~0,-1%
Run Code Online (Sandbox Code Playgroud)
第一个语句获取带有反斜杠的路径,第二个行删除最后一个字符,即反斜杠.有没有办法将这两个语句组合成一行代码?
小智 43
对于许多软件而言,添加尾随点在语义上是等效的,而不是删除尾部反斜杠.
C:\ Windows 相当于 C:\ Windows \.
echo %dp0
>C:\Windows\
echo %dp0.
>C:\Windows\.
Run Code Online (Sandbox Code Playgroud)
出错了:
robocopy "C:\myDir" %~dp0
Run Code Online (Sandbox Code Playgroud)
这很成功:
robocopy "C:\myDir" %~dp0.
Run Code Online (Sandbox Code Playgroud)
只有在将两个语句写入同一行时才会延迟扩展:
set BuildDir=%~dp0&&set BuildDir=!BuildDir:~0,-1!
Run Code Online (Sandbox Code Playgroud)
但这有点违背了目的.