Я запускаю это на Windows 2003
, (других вариантов нет) .
Возьмите следующий код:
@echo off
for /F "tokens=*" %%f in ('Dir /s /b E:\file 2^>nul') do (
@echo %%f
)
Это рекурсивный поиск E:
всех файлов с именем file
. Затем он распечатывает совпадение, которое выглядит примерно так: E:\path\to\file
.
Итак, Dir
естественно печатает File Not Found
после его поиска, это печатается на stderr
.
Итак, я пытаюсь перенаправить stderr
с помощью приведенного ниже (который находится в приведенной выше команде) :
2^>nul
^
экранирует >
, так как команда Dir
встроена. Тем не менее, я просто получаю ошибку, (несмотря на то, что это общее решение для многих) :
> was unexpected at this time
Я проверял это на Windows 7
, и он отлично работает, поэтому я стараюсь заключить >
в речевые метки, которые использовались в NT
и ранее (насколько мне известно) для экранирования символов.
2">"nul
И это ведет себя так же, все еще выводя на stderr
.
Есть идеи?