Почему / F обычно используется с циклами FOR даже при работе с нетекстовыми файлами? - PullRequest
0 голосов
/ 17 января 2011

Я искал пакетный скрипт для определения самого нового файла в каталоге. Все примеры, которые я нашел, используют FOR / F. Когда я читаю справочную документацию по FOR, в ней говорится, что / F открывает, читает и обрабатывает каждый файл.

Почему в этом случае используется / F? Я использовал его с большими двоичными файлами, и сценарий, похоже, не замедляется, поэтому я не думаю, что каждый файл действительно открывается и т. Д.

Я пытался использовать FOR без / F, чтобы выполнить ту же работу, но безуспешно. Есть ли причина для этого?

Например:

FOR %%I IN ('dir "*.AVI" /B /O:D') DO set newestAvi=%%I 

не похоже на работу. По какой-то причине, newestAvi в конце равно «/ O: D».

Если я использую

FOR /F "delims=|" %%I IN ('dir "*.AVI" /B /O:D') DO set newestAvi=%%I

тогда все работает.

Спасибо

Dave

1 Ответ

2 голосов
/ 18 января 2011

Я думаю, что соответствующий бит справочного файла

Finally, you can use the FOR /F command to parse the output of a
command.  You do this by making the filenameset between the
parenthesis a back quoted string.  It will be treated as a command
line, which is passed to a child CMD.EXE and the output is captured
into memory and parsed as if it was a file.  So the following
example:

Итак, с помощью / F ваша команда получает вывод из

dir "*.AVI" /B /O:D

и разбирает каждую строку в команду

newestAvi=%%I

, который становится

newestAvi=FileName.AVI

для каждого файла в текущем каталоге. Последнее назначенное значение - это то, которое осталось в конце выполнения команд for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...