批处理 - 搜索变量是否包含空格

时间:2014-07-08 15:25:27

标签: batch-file

我有一个变量,我需要检查它是否包含空格,如果包含空格则退出。 我有这段代码:

if not [%VAR%]==[%VAR: =%] exit 1

..但它不适合空间。我可以将它用于其他角色。例如,寻找" /"使用相同的代码:

if not [%VAR%]==[%VAR:/=%] exit 1

有办法吗?

谢谢,

2 个答案:

答案 0 :(得分:6)

这应该按照您的需要进行:双引号始终是空格的解决方案,也包含其他一些字符。

if not "%VAR%"=="%VAR: =%" exit 1

答案 1 :(得分:3)

虽然foxidrive的答案可以处理简单案例的问题并且是明显的答案(是的,这是我通常使用的),但对于内部引用的值,它将失败

"如果需要" 这应处理边际情况

for /f "tokens=2 delims= " %%a in (".%var:"=%.") do exit 1

"技巧"是用删除的引号括起该值,并使用for命令对该字符串进行标记。为了避免删除字符串开头和结尾处的空格,包括一对附加点。如果字符串不包含空格,则只有一个标记。但for命令正在请求第二个令牌,因此不会为没有空格的字符串执行内部代码。