4
我正在將運行輸入參數作爲命令在我的dos批處理文件中,正如我在: Run an input parameter as command in dos batch script中所述。 這有效,但是我遇到的問題:檢查輸入命令是否爲空。 我做什麼:檢查dos批處理文件中的輸入命令?
SETLOCAL
set CMD=%*
echo Running command [%CMD%]
IF "%CMD%"=="" (
echo "Input argument missing: command"
GOTO :end
)
echo "XXX %CMD%"
運行:
script.bat echo "a b c"
將輸出:
Running command [echo "a b c"]
b was unexpected at this time.
這發生在IF條件,但是爲什麼呢?
如何檢查我的輸入是否爲空。我知道如何檢查一個字符串是否在dos中是空的,但由於某種原因,它不能在這個組合中工作:(
順便說一句:如果我刪除了IF條件,它的效果很好,那就是:命令執行正確。
- 埃德
+1,因爲你總是正確的。但我優先考慮如果「%〜1」==「」'因爲它更安全 – jeb 2012-03-15 20:37:45
謝謝,我在想困難:( – edbras 2012-03-15 20:42:46
@jeb:謝謝,我也想過''%〜1「==」「' ,但是如果由於某種原因第一個參數只是''「'(而第二個參數是一個非空值),那麼它可能會引起誤解。我的意思是,我們不能確定是否可以指定''」 「''或者不是,所以我想我會用'。%1 ==。'test。 – 2012-03-15 20:48:09