回答:
FOR %%A IN (list) DO command parameters
list は、スペース、コンマ、またはセミコロンで区切られた要素のリストです。
コマンド は、任意の内部コマンドまたは外部コマンド、バッチファイル、さらにはOS / 2およびNTでは、コマンドのリストです。
パラメータに は、コマンドのコマンドラインパラメータが含まれています。この例では、コマンドは、指定されている場合はパラメーターを使用して、リスト内のすべての要素に対して1回実行されます。
特殊なタイプのパラメーター(またはコマンド)は%% Aであり、リストの各要素によって連続的に置換されます。
FORループから
FOR /L %x IN (1,1,100) DO ...
[ parameters ]
に複数の行を含める場合は、括弧を囲みfor
ます
あなたが何かをx回したい場合は、これを行うことができます:
例(x = 200):
FOR /L %%A IN (1,1,200) DO (
ECHO %%A
)
1,1,200
手段:
タイプ:
for /?
すると、数ページのヘルプテキストが表示されます。
コマンドを条件付きで数回実行します。
構文-FOR-ファイル
FOR %%parameter IN (set) DO command
syntax-FOR-Files-Rooted at Path
FOR /R [[drive:]path] %%parameter IN (set) DO command
syntax-FOR-Folders
FOR /D %%parameter IN (folder_set) DO command
syntax-FOR-数値のリスト
FOR /L %%parameter IN (start,step,end) DO command
syntax-FOR-Fileの内容
FOR /F ["options"] %%parameter IN (filenameset) DO command
または
FOR /F ["options"] %%parameter IN ("Text string to process") DO command
syntax-FOR-Commandの結果
FOR /F ["options"] %%parameter IN ('command to process') DO command
それ
%%G
をそのデータの一部に等しくするバッチプログラムではなくコマンドラインでFORコマンドを使用する場合は、の%G
代わりにパーセント記号を1つだけ使用します%%G
。
FORパラメータ
最初のパラメーターは、文字Gなどの単一の文字を使用して定義する必要があります。
FOR %%G IN
...
FORループの各反復で、IN ( ....)
句が評価%%G
され、異なる値に設定されます
この句の結果が単一の値になる場合、%% Gはその値に等しく設定され、コマンドが実行されます。
句の結果が複数の値になる場合、追加のパラメータが暗黙的に定義され、それぞれが保持されます。これらは自動的にアルファベット順に割り当てられ%%H %%I %%J
ます...(暗黙のパラメーター定義)
パラメータがファイルを参照している場合、拡張変数参照を使用して、ファイル名/パス/日付/サイズを抽出できます。
もちろん、アルファベット以外の任意の文字を選択でき%%G
ます。しかし、パス名形式の文字(a、d、f、n、p、s、t、x)と競合せず、暗黙的なパラメーターとして使用するための競合しない文字の最長の実行を提供するため、これは良い選択です。
So for example in a reference like %%~fG the %%G is the FOR parameter, and the ~f is the Parameter Expansion.
(こちら)[ ss64.com/nt/syntax-args.html)。歓声メイト。
このコードを試してください:
@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
)。これはブール式です。ブール値がtrueの場合はgoto closeがプロセスであり、ブール値がfalseの場合はgoto openがプロセスです。
@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
FOR /?
ヘルプドキュメントから:
FOR%variable IN(セット)DOコマンド[コマンドパラメータ]
%variable 1文字の置き換え可能なパラメーターを指定します。
(セット)1つ以上のファイルのセットを指定します。ワイルドカードを使用できます。command各ファイルに対して実行するコマンドを指定します。
command-parameters
指定したコマンドのパラメーターまたはスイッチを指定します。
バッチプログラムでFORコマンドを使用するに
は、%variable ではなく%% variableを指定します。変数名では大文字と小文字が区別されるため、%iは%Iとは異なり
ます。
コマンド拡張機能が有効な場合
、FORコマンドの次の追加形式がサポートされます。
FOR / D%variable IN(セット)DOコマンド[コマンドパラメータ]
If set contains wildcards, then specifies to match against directory
names instead of file names.
FOR / R [[drive:] path]%variable IN(set)DO command [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%variable IN(開始、ステップ、終了)DOコマンド[コマンドパラメータ]
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)