Я начал видеть некоторые очень странные проблемы с командой pipe, не работающей в 64-битной Windows 7 на моей машине. Команды как это:
echo test | more
раньше работал без проблем, но теперь они терпят неудачу со следующим сообщением об ошибке:
'.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' is not recognized as an internal or external command, operable program or batch file.
Также не имеет значения, что находится с левой и правой стороны канала, любая команда командной строки, содержащая канал, не выполняется. Это также, кажется, не имеет значения, если правая часть канала вообще не является надлежащим исполняемым файлом.
Например, следующие оба демонстрируют одинаковые ошибки:
type file1 | findstr blah
dir | thisdoesnotexist
Все это прекрасно работало неделю назад, и я не уверен, что могло измениться. Возможно, было обновление Windows, когда оно перестало работать, но я точно не знаю.
Мои переменные окружения %PATH%
и %PATHEXT%
тоже выглядят нормально. Их содержимое выглядит следующим образом:
Path=C:\Program Files\Common Files\Microsoft Shared\Microsoft Online Services;
C:\Program Files (x86)\Common Files\Microsoft Shared\Microsoft Online Services;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;
C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;
C:\Programs\WinMerge;
C:\Programs\TortoiseHg\;
C:\Programs\MySQL\MySQL Server 5.1\bin;
C:\Programs\Aldec\Active-HDL 9.1\bin;
C:\Programs\Tcl\bin;
C:\Programs\modeltech_pe_10.0b\win32pe;
C:\Programs\Atlassian\atlassian-plugin-sdk-3.2.3\bin;
C:\Xilinx\12.4\ISE_DS\ISE\bin\nt64;
C:\altera\12.1\quartus\bin64
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
Использование любой из этих команд без конвейера работает нормально, и перенаправление в / из файла также работает нормально. Похоже, что программы завершаются корректно, поскольку в журналах событий ничего не отображается.
Кто-нибудь знает, что может быть причиной такой проблемы?