forfor

一連のファイルに各ファイルの指定したコマンドを実行します。Runs a specified command for each file in a set of files.

このコマンドを使用する方法の例については、を参照してください。For examples of how to use this command, see Examples.

構文Syntax

for {%%|%}<Variable> in (<Set>) do <Command> [<CommandLineOptions>]

パラメーターParameters

パラメーターParameter 説明Description
{%%|%}<変数 >{%%|%}<Variable> 必須。Required. 置き換え可能パラメーターを表します。Represents a replaceable parameter. 1 つのパーセント記号を使用して ( % ) 実行するために、コマンド プロンプトでコマンド。Use a single percent sign (%) to carry out the for command at the command prompt. 二重のパーセント記号を使用して ( %% ) 実行するために、バッチ ファイル コマンド。Use double percent signs (%%) to carry out the for command within a batch file. 変数は、大文字小文字を区別、およびなど、アルファベット順の値で表現する必要があります %A%B、または %Cします。Variables are case sensitive, and they must be represented with an alphabetical value such as %A, %B, or %C.
(<設定 >)(<Set>) 必須。Required. 1 つまたは複数のファイル、ディレクトリ、またはテキスト文字列、または、コマンドを実行する対象の値の範囲を指定します。Specifies one or more files, directories, or text strings, or a range of values on which to run the command. かっこが必要です。The parentheses are required.
<コマンド ><Command> 必須。Required. 各ファイル、ディレクトリ、またはテキスト文字列、またはに含まれる値の範囲を実行するコマンドを指定設定します。Specifies the command that you want to carry out on each file, directory, or text string, or on the range of values included in Set.
<CommandLineOptions ><CommandLineOptions> 指定されたコマンドに使用する任意のコマンド ライン オプションを指定します。Specifies any command-line options that you want to use with the specified command.
/?/? コマンド プロンプトにヘルプを表示します。Displays help at the command prompt.

注釈Remarks

  • 使用してUsing for

    使用することができます、バッチ ファイルまたはコマンド プロンプトから直接コマンド。You can use the for command within a batch file or directly from the command prompt.

  • バッチのパラメーターを使用します。Using batch parameters

    次の属性を適用する、コマンド。The following attributes apply to the for command:

    • のコマンドは % 変数または %% 変数、指定したコマンドがすべてのファイルを処理するまでは、指定されたセット内の各テキスト文字列に置き換えます。The for command replaces %Variable or %%Variable with each text string in the specified set until the specified command processes all of the files.
    • 変数名では大文字小文字を区別、グローバル、および一度にアクティブにできる 52 よりもなくなります。Variable names are case sensitive, global, and no more than 52 can be active at a time.
    • バッチのパラメーターと混同しないようにする %0を通じて %9、任意の文字を使用する変数0 ~ 9 の数字を除きます。To avoid confusion with the batch parameters %0 through %9, you can use any character for Variable except the numerals 0 through 9. バッチ ファイル、1 つの文字などの単純な %%1は機能します。For simple batch files, a single character such as %%f will work.
    • 複数の値を使用する変数置き換え可能の異なる変数を区別するために複雑なバッチ ファイルでします。You can use multiple values for Variable in complex batch files to distinguish different replaceable variables.
  • ファイルのグループを指定します。Specifying a group of files

    設定パラメーターは、ファイルの 1 つのグループまたはファイルのいくつかのグループを表すことができます。The Set parameter can represent a single group of files or several groups of files. ワイルドカード文字を使用することができます ( *? ) ファイルを指定する設定。You can use wildcard characters (* and ?) to specify a file set. 以下は、有効なファイル セットです。The following are valid file sets:

    (*.doc) 
    (*.doc *.txt *.me)
    (jan*.doc jan*.rpt feb*.doc feb*.rpt)
    (ar??1991.* ap??1991.*)
    

    使用すると、コマンドの最初の値設定置き換えます % 変数または %% 変数、してから、指定したコマンドはこの値を処理します。When you use the for command, the first value in Set replaces %Variable or %%Variable, and then the specified command processes this value. これは、問題が引き続きまでに対応するすべてのファイル (またはファイルのグループ)、設定値が処理されます。This continues until all of the files (or groups of files) that correspond to the Set value are processed.

  • 使用して、キーワードUsing the in and do keywords

    **** とパラメーターではありませんでそれらを使用する必要がありますします。In and do are not parameters, but you must use them with for. これらのキーワードのいずれかを省略した場合、エラー メッセージが表示されます。If you omit either of these keywords, an error message appears.

  • 追加フォームを使用してUsing additional forms of for

    (既定では)、つまりコマンド拡張機能が有効な場合、次の形式のはサポートされています。If command extensions are enabled (that is the default), the following additional forms of for are supported:

    • ディレクトリのみDirectories only

      場合設定ワイルドカード文字が含まれています ( * または ? )、指定したコマンド(セットではなくディレクトリごとに実行します一致する指定されたディレクトリ内のファイル) の設定します。If Set contains wildcard characters (* or ?), the specified Command executes for each directory (instead of a set of files in a specified directory) that matches Set.

      構文は次のとおりです。The syntax is:

      for /d {%%|%}<Variable> in (<Set>) do <Command> [<CommandLineOptions>] 
      
    • RecursiveRecursive

      ルートにディレクトリ ツリーをウォークドライブ:パスを実行し、ツリーの各ディレクトリ内のステートメント。Walks the directory tree that is rooted at Drive:Path and executes the for statement in each directory of the tree. 後にディレクトリが指定されていない場合 /r、現在のディレクトリがルート ディレクトリとして使用されます。If no directory is specified after /r, the current directory is used as the root directory. 場合設定単一のピリオド (.) だけは、ディレクトリ ツリーのみを列挙します。If Set is just a single period (.), it only enumerates the directory tree.

      構文は次のとおりです。The syntax is:

      for /r [[<Drive>:]<Path>] {%%|%}<Variable> in (<Set>) do <Command> [<CommandLineOptions>]
      
    • 値の範囲を反復処理します。Iterating a range of values

      反復変数を使用して、開始値を設定する (開始#) と値セットの終了値を超える値までの範囲を手順 (エンド#)。Use an iterative variable to set the starting value (Start#) and then step through a set range of values until the value exceeds the set ending value (End#). /l比較することによって、反復的な実行開始# をエンド# です。/l will execute the iterative by comparing Start# with End#. 場合開始# はより小さいエンド# コマンドが実行されます。If Start# is less than End# the command will execute. 反復変数値を超えるとエンド#、コマンド シェルは、ループを終了します。When the iterative variable exceeds End#, the command shell exits the loop. 負の値を使用することもできます。手順# をステップ実行範囲の値が減少します。You can also use a negative Step# to step through a range in decreasing values. たとえば、(1,1,5) 1 2 3 4 5 シーケンスを生成と (5、-1, 1) 5 4 3 2 1 のシーケンスを生成します。For example, (1,1,5) generates the sequence 1 2 3 4 5 and (5,-1,1) generates the sequence 5 4 3 2 1.

      構文は次のとおりです。The syntax is:

      for /l {%%|%}<Variable> in (<Start#>,<Step#>,<End#>) do <Command> [<CommandLineOptions>]
      
    • 反復処理し、ファイルの解析Iterating and file parsing

      処理コマンドの出力、文字列、およびファイルの内容を解析するファイルを使用します。Use file parsing to process command output, strings, and file content. 反復的な変数を使用して、コンテンツまたは確認する文字列を定義して、さまざまな使用ParsingKeywords解析をさらに変更するオプション。Use iterative variables to define the content or strings that you want to examine, and use the various ParsingKeywords options to further modify the parsing. 使用して、 ParsingKeywordsトークンのトークンは、反復的な変数として渡す必要がありますを指定するオプション。Use the ParsingKeywords token option to specify which tokens should be passed as iterative variables. トークンのオプションを指定せずに使用される場合は注意 /f最初のトークンだけで検証されます。Note that when used without the token option, /f will only examine the first token.

      ファイルの解析は、出力、文字列、またはファイルの内容を読み取ると、個々 のテキスト行に分割と 0 個以上のトークンに各行を解析ので構成されます。File parsing consists of reading the output, string, or file content, and then breaking it into individual lines of text and parsing each line into zero or more tokens. ループが反復的な変数の値にトークンを設定して呼び出されます。The for loop is then called with the iterative variable value set to the token. 既定では、 /f各ファイルの各行から、最初の空白区切りトークンを渡します。By default, /f passes the first blank separated token from each line of each file. 空白行はスキップされます。Blank lines are skipped.

      構文は次のとおりです。The syntaxes are:

      for /f ["<ParsingKeywords>"] {%%|%}<Variable> in (<Set>) do <Command> [<CommandLineOptions>]
      for /f ["<ParsingKeywords>"] {%%|%}<Variable> in ("<LiteralString>") do <Command> [<CommandLineOptions>]
      for /f ["<ParsingKeywords>"] {%%|%}<Variable> in ('<Command>') do <Command> [<CommandLineOptions>]
      

      設定引数を 1 つまたは複数のファイル名を指定します。The Set argument specifies one or more file names. 各ファイルが開かれ、読み取りの次のファイルを移動する前に処理設定します。Each file is opened, read, and processed before moving to the next file in Set. 既定の解析動作をオーバーライドするには指定ParsingKeywordsします。To override the default parsing behavior, specify ParsingKeywords. これは、さまざまな解析オプションを指定する 1 つまたは複数のキーワードを含む引用符で囲まれた文字列です。This is a quoted string that contains one or more keywords to specify different parsing options.

      使用する場合、 usebackqオプションで、次の構文のいずれかを使用します。If you use the usebackq option, use one of the following syntaxes:

      for /f ["usebackq <ParsingKeywords>"] {%%|%}<Variable> in ("<Set>") do <Command> [<CommandLineOptions>]
      for /f ["usebackq <ParsingKeywords>"] {%%|%}<Variable> in ('<LiteralString>') do <Command> [<CommandLineOptions>]
      for /f ["usebackq <ParsingKeywords>"] {%%|%}<Variable> in (`<Command>`) do <Command> [<CommandLineOptions>]
      

      次の表に、解析のキーワードを使用できるParsingKeywordsします。The following table lists the parsing keywords that you can use for ParsingKeywords.

      KeywordKeyword 説明Description
      eol=<c>eol=<c> 改行文字 (1 つだけの文字) の末尾を指定します。Specifies an end of line character (just one character).
      スキップ =<N >skip=<N> ファイルの冒頭でスキップする行数を指定します。Specifies the number of lines to skip at the beginning of the file.
      delims=<xxx>delims=<xxx> 区切り記号セットを指定します。Specifies a delimiter set. これには、スペースやタブの既定の区切り記号のセットが置き換えられます。This replaces the default delimiter set of space and tab.
      tokens=<X,Y,M–N>tokens=<X,Y,M–N> 渡される各行からトークンを指定、各イテレーションでループします。Specifies which tokens from each line are to be passed to the for loop for each iteration. その結果、追加の変数名が割り当てられます。As a result, additional variable names are allocated. MNから範囲を指定します、 M番目から、 N番目のトークン。MN specifies a range, from the Mth through the Nth tokens. 場合の最後の文字、トークン = 文字列は、アスタリスク ( * )、追加の変数を割り当て、および最後のトークンが解析された後の行の残りのテキストを受信します。If the last character in the tokens= string is an asterisk (*), an additional variable is allocated, and it receives the remaining text on the line after the last token that is parsed.
      usebackqusebackq 指定しますコマンドとしてバック引用符で囲まれた文字列を実行する単一引用符で囲まれた文字列を使用して、文字列リテラルとしてに対して、または時間の長いファイル名にスペースが含まれるファイル名を許可する <設定> をで囲む各。二重引用符です。Specifies to: execute a back-quoted string as a command, use a single-quoted string as a literal string, or, for long file names that contain spaces, allow file names in <Set>, to each be enclosed in double-quotation marks.
    • 変数の代入Variable substitution

      次の表は、省略可能な構文を示します (任意の変数)。The following table lists optional syntax (for any variable I).

      修飾子を持つ変数Variable with modifier 説明Description
      % ~ は%~I 展開 %I囲む引用符をすべて削除します ("")。Expands %I which removes any surrounding quotation marks (" ").
      % ~ fI%~fI 展開 %Iの完全修飾パス名にします。Expands %I to a fully qualified path name.
      % ~ dI%~dI 展開 %Iドライブ文字のみにします。Expands %I to a drive letter only.
      % ~ pI%~pI 展開 %Iのみのパスにします。Expands %I to a path only.
      % ~ nI%~nI 展開 %Iのみのファイル名にします。Expands %I to a file name only.
      % ~ xI%~xI 展開 %Iのみとファイル名拡張子。Expands %I to a file name extension only.
      % ~ sI%~sI 短い名前のみを格納するパスを展開します。Expands path to contain short names only.
      % ~ aI%~aI 展開 %Iファイルのファイル属性。Expands %I to the file attributes of file.
      % ~ tI%~tI 展開 %Iファイルの日時にします。Expands %I to the date and time of file.
      % ~ zI%~zI 展開 %Iファイルのサイズにします。Expands %I to the size of the file.
      % ~ $PATH: しました%~$PATH:I PATH 環境変数で設定されているディレクトリを検索し、展開 %I見つかった最初のディレクトリの完全修飾名にします。Searches the directories listed in the PATH environment variable and expands %I to the fully qualified name of the first directory found. 環境変数の名前が定義されていないか、検索によって、ファイルが見つからない、この変数は空の文字列に展開されます。If the environment variable name is not defined or the file is not found by the search, this modifier expands to the empty string.

      次の表では、複合の結果を得るために使用できる修飾子の組み合わせを示します。The following table lists modifier combinations that you can use to get compound results.

      結合された修飾子を持つ変数Variable with combined modifiers 説明Description
      % ~ dpI%~dpI 展開 %I先ドライブ文字とパスのみです。Expands %I to a drive letter and path only.
      % ~ nxI%~nxI 展開 %Iファイル名と拡張子のみにします。Expands %I to a file name and extension only.
      % ~ fsI%~fsI 展開 %I短い名前のみで完全なパス名にします。Expands %I to a full path name with short names only.
      %~dp$PATH:I%~dp$PATH:I PATH 環境変数で指定されているディレクトリを検索 %Iドライブ文字と最初のパスに展開します。Searches the directories that are listed in the PATH environment variable for %I and expands to the drive letter and path of the first one found.
      % ~ ftzaI%~ftzaI 展開 %Iのような出力行にdirします。Expands %I to an output line that is like dir.

      上記の例で置き換えることができます %Iで他の有効な値とパス。In the above examples, you can replace %I and PATH with other valid values. 有効な変数名の終了、 %~ 構文。A valid for variable name terminates the %~ syntax.

      変数名の大文字を使用して、 %Iコードを読みやすくして、修飾子は、小文字は区別されませんと混同しないようにすることができます。By using uppercase variable names such as %I, you can make your code more readable and avoid confusion with the modifiers, which are not case sensitive.

  • 文字列の解析Parsing a string

    使用することができます、 /f の解析即時の文字列でのロジックをラップすることによって <LiteralString> でいずれか: 二重引用符 (せず"usebackq") または単一引用符で囲みます ("usebackq")--の例では、("MyString") または ('MyString')。You can use the for /f parsing logic on an immediate string by wrapping <LiteralString> in either: double quotes (without "usebackq") or in single quotes (with "usebackq") --for example, ("MyString") or ('MyString'). <LiteralString> ファイルからの入力の単一行として扱われます。<LiteralString> is treated as a single line of input from a file. 解析するときに <LiteralString> コマンド記号、二重引用符で (など \ & | > < ^ ) は通常の文字として扱われます。When parsing <LiteralString> in double-quotes, command symbols (such as \ & | > < ^) are treated as ordinary characters.

  • 出力の解析Parsing output

    使用することができます、 /f のバック クォートを配置することで、コマンドの出力を解析するコマンド <コマンド> かっこの間。You can use the for /f command to parse the output of a command by placing a back-quoted <command> between the parentheses. Cmd.exe の子に渡されるコマンドラインとして扱われます。It is treated as a command line, which is passed to a child Cmd.exe. 出力がメモリにキャプチャされ、ファイルが解析。The output is captured into memory and parsed as if it is a file.

Examples

使用するバッチ ファイルで、次の構文を使用します。To use for in a batch file, use the following syntax:

for {%%|%}<Variable> in (<Set>) do <Command> [<CommandLineOptions>]

置き換え可能な変数を使用して、拡張子 .doc や .txt を持つ現在のディレクトリ内のすべてのファイルの内容を表示する %f種類。To display the contents of all the files in the current directory that have the extension .doc or .txt by using the replaceable variable %f, type:

for %f in (*.doc *.txt) do type %f 

前の例では各ファイルを現在のディレクトリに .doc や .txt 拡張子を持つで置き換えられます、 %f変数まで、すべてのファイルの内容が表示されます。In the preceding example, each file that has the .doc or .txt extension in the current directory is substituted for the %f variable until the contents of every file are displayed. このコマンドをバッチ ファイルを使用する置換出現するすべての %f%%1します。To use this command in a batch file, replace every occurrence of %f with %%f. それ以外の場合、変数は無視され、エラー メッセージが表示されます。Otherwise, the variable is ignored and an error message is displayed.

ファイルを解析するには、行、型のコメントは無視されます。To parse a file, ignoring commented lines, type:

for /f "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k

このコマンドは、Myfile.txt 内の各行を解析します。This command parses each line in Myfile.txt. メソッドは、セミコロンで始まる行を無視しを各行から 2 番目と 3 番目のトークンを渡します、本文 (トークンは空白またはコンマで区切られます)。It ignores lines that begin with a semicolon and passes the second and third token from each line to the for body (tokens are delimited by commas or spaces). 本体、ステートメント参照 %i 、2 つ目のトークンを取得する %j 3 番目のトークンを取得し、 %k残りのすべてを取得するにはトークンです。The body of the for statement references %i to get the second token, %j to get the third token, and %k to get all of the remaining tokens. 指定したファイル名にスペースが含まれている場合は、(たとえば、「ファイル名」) のテキストを囲む引用符を使用します。If the file names that you supply contain spaces, use quotation marks around the text (for example, "File Name"). 使用する必要があります引用符を使用するusebackqします。To use quotation marks, you must use usebackq. それ以外の場合、引用符は、解析するリテラル文字列を定義するとして解釈されます。Otherwise, the quotation marks are interpreted as defining a literal string to parse.

%iで明示的に宣言されて、ステートメント。%i is explicitly declared in the for statement. %j%kを使用して暗黙的に宣言トークン = します。%j and %k are implicitly declared by using tokens=. 使用することができますトークン = を最大 26 個のトークンを指定して、文字"z"または"Z にします"より高い変数を宣言する試行は行われませんを指定。You can use tokens= to specify up to 26 tokens, provided that it does not cause an attempt to declare a variable higher than the letter "z" or "Z."

次の例では、現在の環境で環境変数の名前を列挙します。The following example enumerates the environment variable names in the current environment. 配置することで、コマンドの出力を解析する設定かっこの間に入力します。To parse the output of a command by placing Set between the parentheses, type:

for /f "usebackq delims==" %i in ('set') do @echo %i 

その他の参照情報Additional references

コマンド ライン構文の記号Command-Line Syntax Key