如果我們有一個批處理文件被重定向到一個日誌像這樣:有沒有辦法檢查批處理文件中的重定向?
C:\Testing\Example.bat > C:\Testing\Example.log
有什麼辦法裏面的批處理文件,以確定是否有一個標準輸出重定向發生在一個日誌文件?
基本上我的批處理文件需要傳遞給它的三個參數。如果省略參數,批處理文件就會像常規DOS命令那樣打印使用示例,並會拋出「暫停」,以便讀取指令。但是,如果批處理被調用時沒有參數並且它被記錄下來,那麼批處理文件將永遠坐在那裏等待一個鍵來暫停暫停,但不會在屏幕上顯示任何內容。
通常這根本就不是問題,但是我試圖做這個傻瓜證明,因爲我不會是在其他腳本/計劃任務中實現批處理文件的人。
在這一點上,似乎我需要徹底擺脫使用停頓,但我希望有一個解決方案,我不需要。謝謝您的幫助。
而不是使用暫停,您可以使用超時選擇命令。 – rojo 2013-03-20 21:16:37
可以檢測重定向,並且如果管道處於活動狀態,[如何檢測輸入是來自管道還是重定向文件](http://www.dostips.com/forum/viewtopic.php?p=10672#p10672) 。但是你也可以閱讀這個[Dostips:參數萬無一失](http://www.dostips.com/forum/viewtopic.php?p=14612#p14612),流是如何工作的。 – jeb 2013-03-20 21:58:14
Jeb感謝您將本文檔鏈接起來,瞭解流媒體實際發生的情況確實很有趣。由於設置這些示例的複雜性,我覺得它會使批處理文件超過我所熟悉的水平。如果關鍵參數丟失,並且將指令標籤鏈接到[%1] == [/?]或[%1] == [help] – 2013-03-22 12:53:13