我正在完成一個批處理腳本,將本地編輯的網站的內容傳輸到互聯網。如何隱藏批輸出
該腳本在控制檯窗口中打開,並輸出管理員需要查看的大量內容以防出現問題。但是,在這種情況下,輸出將作爲電子郵件發送,因此不需要顯示輸出並將不必要地運行更新的用戶混淆。我只需要顯示幾行(比如「開始同步...」和「同步完成」)。
任何人都可以想出一種方法來停止批處理腳本中的輸出嗎?一種總「回聲消失」?
簡單
my_batch_file > nul
不會削減它,因爲正如我所說,一些事情我需要證明。
我正在完成一個批處理腳本,將本地編輯的網站的內容傳輸到互聯網。如何隱藏批輸出
該腳本在控制檯窗口中打開,並輸出管理員需要查看的大量內容以防出現問題。但是,在這種情況下,輸出將作爲電子郵件發送,因此不需要顯示輸出並將不必要地運行更新的用戶混淆。我只需要顯示幾行(比如「開始同步...」和「同步完成」)。
任何人都可以想出一種方法來停止批處理腳本中的輸出嗎?一種總「回聲消失」?
簡單
my_batch_file > nul
不會削減它,因爲正如我所說,一些事情我需要證明。
Windows實際上確實有輸出和錯誤的概念。這裏有一個例子:
下的test.bat:
@echo off
echo verbose stuff 1
echo verbose stuff 2
echo verbose stuff 3
echo important stuff! >&2
echo verbose stuff 4
如果你運行它爲 'test.bat
' 你會得到完整的輸出。如果你運行它'test.bat >nul
',那麼你只會得到'重要的'輸出(任何重定向到stderr,用> & 2)
你可以寫出一些需要顯示的東西給stderr
而不是stdout
。
或者,也可以重定向您要隱藏的各個部分的輸出。
對不起,我混淆了我的例子,我在這裏的Windows系統。沒有在那裏工作嗎? – 2010-01-11 21:01:08
哦,你在談論一個字面量的批處理文件。在這種情況下,您可以將不想顯示的部分分離爲單獨的批處理腳本,並從主處理器調用它,重定向輸出。另外,請記住'@'前綴,它會停止打印命令本身。 – 2010-01-11 21:03:32
批處理腳本可以運行本身
@echo off
if "%1" == "1" goto else
echo start
call %0 1 > nul
echo done
goto done
:else:
echo do stuff
:done:
標準輸出第二調用去NUL
哈,這對我來說是完美的。謝謝! – 2010-01-11 21:14:02