批处理文件变量%CD%从驱动器根运行时添加反斜杠

时间:2016-05-17 21:38:49

标签: variables batch-file cd

批处理文件中的变量%CD%存在问题。如果脚本从驱动器的根目录运行,则会添加反斜杠。

作为示例: updatedir =%CD%\ Update & echo%updatedir%将返回类似

的内容
  • 从文件夹 E:\ New Folder \ Update
  • 来自云端硬盘 E:\\ Update

如果从root运行,是否有办法摆脱额外的反斜杠?

3 个答案:

答案 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:\\=\%