在 Windows 10 Pro 21H2 上使用cmd
时,我尝试
echo Hello | find "Bye"
我明白了The system cannot find the specified path
。如果尝试
echo Hello | C:\Windows\System32\find.exe "Bye"
因此这PATH
似乎不是问题。
我需要这个工作是因为 Visual Studio Code 连接到 ssh 服务器的方式:
type "C:\Users\thomedes\AppData\Local\Temp\vscode-linux-multi-line-command-vpc-13769646.sh" | ssh -T -D 64480 server bash
这给出了完全相同的问题。
编辑:
刚刚在装有 Windows XP 的旧机器上试过。运行完美。
编辑:
系统信息。它是西班牙语的,但应该很容易理解。这是正常的 Windows 10 安装。没有魔术。
C:\Users\thomedes>dir echo*
El volumen de la unidad C es Windows
El número de serie del volumen es: XXXX-XXXX
Directorio de C:\Users\thomedes
No se encuentra el archivo
C:\Users\thomedes>dir find*
El volumen de la unidad C es Windows
El número de serie del volumen es: XXXX-XXXX
Directorio de C:\Users\thomedes
No se encuentra el archivo
C:\Users\thomedes>where find
C:\Windows\System32\find.exe
C:\Users\thomedes>where echo
INFORMACIÓN: no se pudo encontrar ningún archivo para los patrones dados.
更多信息,这样做可以正常运行:
C:\Users\thomedes>echo Hello > foo
C:\Users\thomedes>find "Bye" < foo
答案1
我自己回答是因为 Windows 更新后问题就消失了。
感谢微软!
答案2
在管道中进行 grep 时始终使用findstr
(windows 的 grep 替代品)。find
也做其他的事情。
这适用于任何 Windows 版本:
echo Hello | findstr "Bye"