2012-07-27 32 views
1

有沒有人知道如何在設置變量時忽略>nul?或者這是不可能的?我有一種感覺,只有當所有的變量都被擴展了或者某種東西出現之後,這些東西纔會起作用,但是問問會不會有什麼不好。在變量中使用> nul

例子:

@echo off 

:: Won't work 
SET pause_5=ping localhost /n 6 >nul 
%pause_5% 

:: Will work 
SET pause_5=ping localhost /n 6 
%pause_5% >nul 

exit 

回答

2

周圍的論據報價:

set "pause_5=ping localhost /n 6 >nul" 

另一種選擇就是逃跑,將被shell解釋的字符:

set pause_5=ping localhost /n 6 ^>nul 

但通常報價方式要容易得多。

你寫的方式本質上是說»設置pause_5ping localhost /n 6並且忽略set命令的輸出。

+0

呵呵。我不知道引號可能會跨越到變量名稱上。我以爲你只能在變量周圍使用它們。涼!逃避角色有什麼特別的缺點嗎? – mythofechelon 2012-07-27 10:38:05

+0

如果有多件事情要逃脫,那麼錯過這件事情會更容易。用引號顯式地逃避一切。就「集合」而言,*所有*都是它的論點;即變量,'='和值。 – Joey 2012-07-27 10:52:51