командная строка 'FOR' - PullRequest
       19

командная строка 'FOR'

0 голосов
/ 10 ноября 2010

В папке «D: \ log» 3 файла, имена которых соответственно «log1.txt log2.txt log3.txt».Я хочу показать некоторые сведения, используя команду «FOR» MS-DOS.

 
set /a C=0
for %%I in (log*.txt) do ( 
  echo "%C%--%%I"
  set /a C+=1
)
Выходные строки были такими:
 
0--log101105.txt
0--log101116.txt
0--log101117.txt
Но, ожидаемые результаты - как ниже, а не выше
 
0--log101105.txt
1--log101116.txt
2--log101117.txt

Как увеличить значение параметра 'C' во время цикла FOR?

Ответы [ 2 ]

1 голос
/ 10 ноября 2010
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

set /a c=0
for %%I in (log*.txt) do ( 
 echo "!C!--%%I" 
 set /a c=!c!+1
)

alt text

0 голосов
/ 10 ноября 2010

vВы должны включить «расширение отложенной переменной» для этого.

Обратитесь за помощью к политикам SET (SET /?).Это точно объясняет вашу проблему

...