Войти

Показать полную графическую версию : [решено] Что такое 2^?


Das Betrunkene Pferd
31-08-2010, 20:22
Есть вот такой код:
For /F "UseBackQ Delims=" %%I In (`Dir Addons /AD /B /ON 2^>nul`) Do (
Echo Addons\%%~I>>Temp\Folders.txt
)

Собственно вопрос: что означает 2^ после команды dir? Если его убрать, код работать перестаёт; но, если, допустим, вместо 2 поставить 3, всё по-прежнему работает.

amel27
31-08-2010, 20:47
"2>nul" означает подавление сообщений DIR об ошибках (каталог не существует)
"^" экранирует спецсимвол ">", чтобы он срабатывал для DIR, но игнорировался FOR

Das Betrunkene Pferd
31-08-2010, 21:04
А 2 перед ^ зачем?

amel27
31-08-2010, 21:23
номер потока вывода, 1 - основной поток данных, 2 - поток сообщений об ошибках, но не все CMD-утилиты придерживаются этих правил, некоторые выводят только в 1, некоторые только в 2

подробно: Использование операторов перенаправления команд (http://technet.microsoft.com/ru-ru/library/cc772622(WS.10,printer).aspx)




© OSzone.net 2001-2012