Как вы работаете в пакетном файле Windows?

Каков синтаксис цикла FOR в командном файле Windows?

Ответ 1

FOR %%A IN (list) DO command parameters

list - это список любых элементов, разделенных пробелами, запятыми или точками с запятой.

команда может быть любой внутренней или внешней командой, пакетным файлом или даже - в OS/2 и NT - списком команд

параметры содержат параметры командной строки для команды. В этом примере команда будет выполняться один раз для каждого элемента в списке, используя параметры, если они указаны.

Специальный тип параметра (или даже команда) - это %% A, который будет подстроен каждым элементом из списка последовательно.

От цикла FOR

Ответ 2

Если вы хотите сделать что-то х раз, вы можете сделать это:

Пример (x = 200):

FOR /L %%A IN (1,1,200) DO (
  ECHO %%A
)

1,1,200 означает:

  • Начало = 1
  • Приращение на шаг = 1
  • End = 200

Ответ 3

Тип:

for /?

и вы получите несколько страниц текста справки.

Ответ 4

Условно выполнить команду несколько раз.

  • Синтаксис-FOR-Files

    FOR %%parameter IN (set) DO command 
    
  • Синтаксис FOR-Files-Rooted at Path

    FOR /R [[drive:]path] %%parameter IN (set) DO command 
    
  • синтаксис FOR-папка

    FOR /D %%parameter IN (folder_set) DO command 
    
  • синтаксис-FOR-Список чисел

    FOR /L %%parameter IN (start,step,end) DO command 
    
  • Синтаксис-FOR-File contents

    FOR /F ["options"] %%parameter IN (filenameset) DO command 
    

    или

    FOR /F ["options"] %%parameter IN ("Text string to process") DO command
    
  • синтаксис-FOR-Command Results

    FOR /F ["options"] %%parameter IN ('command to process') DO command
    

Это

  • Возьмем набор данных
  • Сделать параметр FOR %%G равным некоторой части этих данных
  • Выполните команду (необязательно, используя параметр как часть команды).
  • → Повторить для каждого элемента данных

Если вы используете команду FOR в командной строке, а не в пакетной программе, используйте только один знак процента: %G вместо %%G.

Параметры FOR

  • Первый параметр должен быть определен с использованием одного символа, например буквы G.

  • FOR %%G IN...

    В каждой итерации цикла FOR вычисляется предложение IN ( ....) и %%G устанавливается на другое значение

    Если это предложение приводит к одному значению, то %% G устанавливается равным этому значению и выполняется команда.

    Если предложение приводит к нескольким значениям, то дополнительные параметры неявно определяются для их хранения. Они автоматически назначаются в алфавитном порядке %%H %%I %%J... (неявное определение параметра)

    Если параметр относится к файлу, то для извлечения имени файла/пути/даты/размера может использоваться расширенная ссылка на переменную.

    Вы можете, конечно, выбрать любую букву алфавита, кроме %%G. но это хороший выбор, потому что он не конфликтует ни с одной из букв формата пути (a, d, f, n, p, s, t, x) и обеспечивает самый длинный пробег неконфликтных букв для использования в качестве неявных параметров.

Ответ 5

FOR предоставит вам любую информацию, которую вам когда-либо понадобится узнать о циклах FOR, включая примеры правильного использования.

Ответ 6

Попробуйте этот код:

@echo off
color 02
set num1=0
set num2=1 
set terminator=5
:loop
set /a num1= %num1% + %num2%
if %num1%==%terminator% goto close
goto open
:close
echo %num1%
pause 
exit
:open
echo %num1%
goto loop

num1 - это число, которое должно быть увеличено, а num2 - это значение, добавленное к num1, и терминатор - это значение, в котором закончится num1. Вы можете указать другое значение терминатора в этом утверждении (if %num1%==%terminator% goto close). Это логическое выражение goto close - это процесс, если логическое значение true и goto open - это процесс, если логическое значение false.

Ответ 7

@echo off
echo.
set /p num1=Enter Prelim:
echo.
set /p num2=Enter Midterm:
echo.
set /p num3=Enter Semi:
echo.
set /p num4=Enter Finals:
echo.
set /a ans=%num1%+%num2%+%num3%+%num4%
set /a avg=%ans%/4
ECHO %avg%
if %avg%>=`95` goto true
:true
echo The two numbers you entered were the same.
echo.
pause
exit

Ответ 8

Из FOR /? help doc:

FOR% variable IN (set) Команда DO [command-parameters]

% variable Указывает параметр замены одной буквы.
(set) Определяет набор из одного или нескольких файлов. Могут использоваться подстановочные знаки. command Задает команду для выполнения для каждого файла.
Команда-параметры
           Указывает параметры или переключатели для указанной команды.

Чтобы использовать команду FOR в пакетной программе, укажите вместо нее переменную %% % переменной. Переменные имена чувствительны к регистру, поэтому% я отличается от% I.

Если расширенные расширения команд включены, следующие дополнительные поддерживаются формы команды FOR:

FOR/D% переменная IN (задана) команда DO [command-parameters]

If set contains wildcards, then specifies to match against directory  
names instead of file names.                                          

FOR/R [[диск:] путь]% переменная IN (задана) команда DO [command-parameters]

Walks the directory tree rooted at [drive:]path, executing the FOR    
statement in each directory of the tree.  If no directory             
specification is specified after /R then the current directory is     
assumed.  If set is just a single period (.) character then it        
will just enumerate the directory tree.                               

FOR/L% переменная IN (начало, шаг, конец) Команда DO [command-parameters]

The set is a sequence of numbers from start to end, by step amount.   
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would   
generate the sequence (5 4 3 2 1)