批处理文件bat中,路径包含空格应该怎么处理
问题描述
- 在bat文件中,定义了一个路径变量:set projectpath=C:\Users\user name\Desktop,基于这个路径,需要进行一些处理,所以定义了另一个路径变量:set output=%projectpath%\output。
- 在bat运行时就出问题了,因为projectpath表示的路径中有空格,所以在取变量projectpath的值时被截断了,只能取作C:\Users\user,自然的,变量output的值也不是我想要的。
- 针对这个问题要怎么解决呢。
解决过程
- 我是真没想到这么个问题还让我查了挺长时间的,感觉bat好烂呀(当然是因为我不熟悉哈,只是单纯的觉得烂,发泄一下)。
- 空格没法用转义来表示,字符串和变量两个双引号时也不能直接拼接,真是烦死了。
- 如果只是路径中包含了空格,那么加一个双引号就可以了,但是我这里用到了变量来确定另一个路径,加引号解决不了问题。
- 最后看到了这篇帖子,问题才算解决了,感谢。
最终解决办法
- 采用8个字符缩写,即写头六个字母(略去空白),另加波浪号和1,首字母不足六个字母,略去空白,用了第二个词的字母,凑成六个。例如:
- "Documents and Settings“ – DOCUME~1
- “Local Settings” – LOCALS~1 (注意略去空白,用了第二个词的字母,凑成六个,再加波浪号和1)。
- 针对我的问题,也就是:set projectpath=C:\Users\userna~1\Desktop.
- 用帖子中的第三种方法也可以。