批处理文件中的变量%CD%存在问题。如果脚本从驱动器的根目录运行,则会添加反斜杠。
作为示例: updatedir =%CD%\ Update & echo%updatedir%将返回类似
的内容如果从root运行,是否有办法摆脱额外的反斜杠?
答案 0 :(得分:3)
如果当前目录是根目录,则%CD%
只有一个尾随\
。你可以摆脱可能存在的任何尾随反斜杠。但是有一个更简单的解决方案。
使用未记录的%__CD__%
代替,总是附加尾部反斜杠。无论当前目录如何,这都可以轻松构建一个干净的路径。
set "updatedir=%__CD__%Update
答案 1 :(得分:2)
您可以这样做:
set "CurrentDir=%CD%"
if "%CD:~-1%"=="\" set "CurrentDir=%CD:~0,-1%"
由于您不想更改系统变量%CD%
,因此会将新变量%CurrentDir%
设置为当前值%CD%
。然后,它会检查%CD%
中的最后一个字符是否为\
,如果是,则将%CurrentDir%
设置为%CD%
的值,减去最后一个字符。
This question/answer提供了有关在批处理文件中使用子字符串的更多信息。
答案 2 :(得分:2)
用\\
替换\
的每一次出现。
echo %updatedir:\\=\%