2016-01-28 55 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%"=="" (...)