我对批处理脚本中目录名中的空格有问题。
我存储一个基本目录,然后使用它生成子目录和文件,如下所示:
set basepath=c:\some\path
set logdir=%basepath%\log
set logfile=%logdir%\test.log
但是一些服务器上的基本路径中有空间。早些时候,我使用dir /x
来获得缩短的8.3名,但是我遇到了一个服务器无法工作(显然有一些设置可以禁用它,并且我没有权限打开它)。所以现在我想弄清楚。我需要将文件名/目录连接到basepath,basepath中可能有空格。我试过用双引号,但没有用。
在命令提示符下,您可以使用双引号目录和非双引号目录的组合来执行类似cd "some path"\with\spaces
的操作。但这在批处理脚本中不起作用。
有什么建议吗?
发布于 2014-04-23 19:56:16
set "basePath=c:\somewhere\over the rainbow"
set "logDir=%basePath%\logs"
set "logFile=%logDir%\kansas.log"
>> "%logFile%" echo This is a test
cd "%logDir%"
不要在变量值中插入引号(除非是必要的)。
使用引号连接set
命令,以确保变量中不存储任何对位空间,并保护特殊字符。
将引号放在使用变量的最终命令中的正确位置。
https://stackoverflow.com/questions/23253725
复制相似问题