2015-10-15 60 views
1

大家好,我正在嘗試使用Windows命令行進行一些小工作。我測試了輸入重定向,但它似乎並沒有工作:Windows 8.1命令行 - 輸入重定向不起作用

我創建了一個包含以下字符串中的test.txt文件: *.txt

如果鍵入:dir /B *.txt,我得到的名單。目錄中的txt文件。

如果我輸入:dir /B < test.txt,結果等於dir /B,即它忽略輸入重定向。該文件是用寫字板創建的。有什麼想法出錯?

感謝,

最大

編輯:如果我嘗試dir /B $(< test.txt),一個錯誤信息彈出:The system cannot find the file specified

+0

輸入重定向不適用於'dir',因爲它根本不期望來自stdin的輸入。 – Marged

回答

0

輸入重定向不dir工作,因爲它根本不從標準輸入期望的輸入。如果它會對stdin做出反應,那麼只需在沒有任何參數的情況下運行dir時暫停並等待輸入。 如果你想從文件中讀取模式這樣做:

for /f %%i in (pattern.cfg) do set pattern=%%i 
dir /b %pattern% 

這會推從pattern.cfg文件的最後一個(或唯一的一行)到變量模式。

+0

謝謝。我用「回聲」進行測試,它似乎也不工作。我只是想在測試一些工作前測試一些命令。其中一個測試是嘗試重定向來自文件的std輸入。回聲似乎也沒有采取。這是否意味着來自文件的輸入不適用於所有命令?什麼是可以使用它的命令? – madmaxthc

+0

diskpart可以工作。但我想我還不明白你想達到什麼。也許最好是你創建一個臨時批處理文件,你從你的主批次調用 – Marged

+0

恩,謝謝。這是一個解決方法。我仍然感到困惑,我似乎無法利用輸入重定向,但至少這會完成這項工作。感謝您的時間:) – madmaxthc

0

輕微的變化,但是這個工作對我來說:

for /f "delims=" %i in (test.txt) do set output=%i 
dir /b %output% 

注意,這將是罰款,直接在命令行上,但在一個批處理文件在上面看到的,你應該加倍的「%」標誌回答。