Почему FOR / F "skip = 0" не работает? - PullRequest
5 голосов
/ 23 июня 2011

В стандартном командном файле Windows (.cmd) я хочу сделать:

FOR /F "skip=0" %%G IN (filename.txt) DO ( ECHO %%G )

но я получаю " was unexpected at this time.

"skip=1" работает нормально (в моем реальном коде 0 - это переменная).

В соответствии с ss64.com по умолчанию установлено значение skip=0, но оно явно не работает при явной установке.

Я делаю это неправильно? Или я могу использовать обходной путь?

Edit:

Я пробовал это как на Windows Server 2003, так и на Windows 7.

Содержимое файла filename.txt может быть:

something
stuff
unicorns

Ответы [ 2 ]

6 голосов
/ 23 июня 2011

Это действительно не нравится 0, заставляя парсер ожидать большего после него (вы также можете отключить его, если попытаетесь использовать 09, который он пытается проанализировать как восьмеричный, что не получается).

Полагаю, вам нужно создать переменную окружения, содержащую всю часть skip=n или ничего, и вставить ее в список аргументов. Что-то вроде

if %N% GTR 0 (
  set SKIP="skip=%N%"
) else (
  set SKIP=
)

и затем используйте

for /f %SKIP% %%G ...

(или без кавычек, если вам нужно передать больше опций).

0 голосов
/ 08 июля 2013

Я добавляю "" ложную "" первую строку, чтобы избежать строки (ов) IF и оставляю пропустить в любое время:

::   liste des fichiers du repertoire et de ses sous-repertoires
echo ***   liste des fichiers du repertoire et de ses sous-repertoires >%FicListImg%
dir /s /b /a:-d %RepImg%\*.*  >> %FicListImg%
set compteurA=0
for /f %%a in (%FicListImg%) do set /a CompteurA+=1  
set /a CompteurA = %CompteurA%-1
set /a NbImg = %CompteurA%-1
@echo Repertoire Images : %RepImg%  (%NbImg% images) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...