0
隨着%v%的.TXT本文件中,此批處理文件:爲什麼此傳送命令失敗?
PROMPT $g
SET v="d"
FOR %%F IN ("*.txt") DO (TYPE "%%F" )
FOR %%F IN ("*.txt") DO (SORT "%%F" )
FOR %%F IN ("*.txt") DO (TYPE "%%F" | SORT)
產生
>PROMPT $g
>SET v="d"
>FOR %F IN ("*.txt") DO (TYPE "%F" )
>(TYPE "%v%.txt" )
content
>FOR %F IN ("*.txt") DO (SORT "%F" )
>(SORT "%v%.txt" )
content
>FOR %F IN ("*.txt") DO (TYPE "%F" | SORT )
>(TYPE "%v%.txt" | SORT )
The system cannot find the file specified.
>
爲什麼「系統無法找到指定的文件」,從僅具有管道命令行?
完全正確。該命令首先在運行批處理文件的'cmd'實例中解析('%% F - >%v%.txt')。管道的每一側都由一個新的單獨的'cmd'實例來處理,該實例解析('%v%.txt - >「d」.txt')並執行該命令。 –
@MC ND,哇,這是愚蠢的。那是如何預計工作,我想知道? 謝謝。 – ChrisJJ
@ChrisJJ,管道將左側的* process *的sdtout連接到右側的* process *的stdin。雖然不是唯一的解決方案,但是它早在unix版本之後就已經實現了,而且它就像bash一樣在今天實現。它可以工作,但它有時會咬你的怪癖。 –