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一样在今天实现。它可以工作,但它有时会咬你的怪癖。 –