2016-01-28 54 views
0

为什么下面的批处理脚本失败? 是因为有两组双引号? 我如何得到这个工作?两套双引号批处理文件错误

SET INCOME-CODE="test (bob, bob2)" 

IF "%INCOME-CODE%"=="NULL" (

    SET APCINVOICE=%APCINVOICE%, 

) ELSE (

    SET APCINVOICE=%APCINVOICE%%INCOME-CODE%, 

) 
+2

是否要检查是否定义了“收入代码”? – npocmaka

+0

您确定批处理文件中允许使用连字符吗? –

+0

你的意思是失败?代码绝对不会导致失败。但是,是的,如果你的字符串有引号,你的字符串比较将不起作用,然后你的引号围绕变量进行比较。 – Squashman

回答

0

两件事。

第一个,您的变量INCOME-CODE实际上有引号。试试这个简短的演示:

@echo off 
set TEST1="this is a string with spaces" 
set "TEST2=this is a string with spaces" 
echo %TEST1% 
echo %TEST2% 

,你是比较的文本字符串 “NULL”。批量中没有NULL值。请参阅此帖以获取更多详细信息:What is the proper way to test if variable is empty in a batch file...如果您正在处理更复杂的事情,您可能想要做的就是将其与空字符串进行比较,或使用上述问题中的某个方法。

IF "%INCOME-CODE%"=="" (...)