for/fコマンド:ファイルの集合に対して



フォー・F


for/f Windowsコマンドラインツールは、ファイルのセットに対するループコマンドです.

CMDライン


CMD Line ユーザーからOSにコマンドを転送するテキストベースのインターフェイスです.

コマンドラインインタプリタ


The command-line interpreter ( CLI ) Windows用CMD.EXE . また、使用することができますPowerShell 多くのシステム管理タスクを自動化することができ、これらのタスクはコマンドプロンプトには適用できません.CLIの助けを借りて、コマンドでテキストを入力することで、システムと通信できます.その結果、システムが以前に入力したテキストに応答し、ユーザーは次のコマンドラインで表示できます.

ウィンドウを開くには


コマンドウィンドウを実行すると、プログラムを実行し、ファイルやフォルダを開くことができます.ダイアログボックスを開く方法もいくつかあります.この実行コマンドボックスを使用すると、簡単に永続的なプログラムにまっすぐに頭に便利です.
キーボードショートカットキーを使用します.
ウィンドウズ
最も一般的に使われるメソッドの一つはショートカットキーメソッドです.また、このメソッドはWindowsのすべてのバージョンです.を押す必要がありますWindows+ R ダイアログボックスを同時に開きます.

コマンドボックスを実行する

F / Fコマンドは何をしますか?


このコマンドは、パラメータが与えられたときに特定のコマンドを実行するファイルに利用されます.このコマンドは内部コマンドです.for/fコマンドは、各項目に対してコマンドを実行する一連のファイルに対するものです.

構文



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

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

パラメータ説明


利用可能なオプション


  • delims = xxx -区切り文字、文字列のデフォルト=スペースまたはタブを指定します.

  • スキップ= N -ファイルの先頭でスキップする行の数を定義します.デフォルト= 0.

  • すなわち、これはコメントを示すために各行の先頭にある文字を示します.デフォルトはセミコロンです

  • トークン= n -これは、それぞれの行から読み込む番号を指定します.

  • usebackq -代替の引用スタイルを使用します.
  • ダブルクォートではなく「テキスト文字列」を使用して単一引用符を使用します.
  • 長いファイル名の“filenameset”の長いファイル名のために二重引用符を使用できます.
  • あなたが処理するコマンドの引用符を使用することができます.

  • FileNameSet - 1 *以上のファイル**集合を括弧で囲みます( file 1 , file 2 ).

  • コマンド-任意のパラメータを含む実行するコマンド.これは単一のコマンドであり、括弧で複数のコマンドを含む.

  • % % parameter - % % gを使用したバッチファイルの置換可能なパラメータを示します(コマンドライン% Gで)
  • ファイルの内容の代わりにファイル名を処理する必要がある場合は、dir */bをコマンドとして*/fコマンドを使用します.
  • for/fテキストファイルの機能は、ファイルを読み込み、一度に1行のテキストを読み込み、それから「トークン」と呼ばれるデータの個々の項目にラインアップする.次にパラメータとトークンを使ってDOコマンドを実行します.
  • 通常、デフォルトでは、/fはファイル内の各行を空白の各領域で分割します.しかし、オプションは*引用符*内で*必要があります*.
  • Usebackq


    useBackQはusebackの略です.
  • このUseBackQは**長いファイル名* *に便利です.
  • そして、あなたは*引用符*を使用することができます.
  • 処理するコマンドは**バッククォート**を使用できます.
  • 注意:スペースを含まないファイル名に引用符を付ける必要はありません.
    このバッククォートはキーボードの大多数のESCキーで見つかります.

    スキップ


    * * * * * * * *行*の処理をジャンプします.また、空の行をジャンプします.その結果、空の行は無視されます.

    行の終わり

  • EOLから始まる行は、コマンドがテキストファイルを読み込む際に無視されます.詳細は、**コマンド**として扱います.
  • デフォルトの文字は**;セミコロン* *.
  • EOLをXに変更するには、EOL = Xを使用することができます.
  • デリム

  • 区切り文字は1つ以上で、1234 + 56 + 789のような文字列です111234 'は、“delims =;+”を使用して崩壊することができます.

  • デフォルトのタブやスペースは、区切り文字に言及していない場合.
  • オプションでは、文字列の区切り文字は
  • "トークンは3 delims = "
  • デリミタを削除するには、これは最初のトークンでそれらのすべてを見つめるので**“delims =”**を使用することができます.
  • トークン

  • *トークン=3,4,5*は各ラインの3番目、4番目、5番目の項目を処理する.

  • トークン=5−7は、5行目、6番目、7番目を各ラインで処理する.

  • これは行のすべてのものを処理します.

  • token = 5 * 3番目のトークンと6番目以降のすべての項目を処理します.これはトークン= 5 ,
  • トークンに使用される文字は**大文字小文字を区別する**です.
  • トークンには次のASCII文字を使用できます.
  • ASCII 93 - 113 , 29 Tokens :^^ A B B C D e f f g h i j k l m n o p q s s s uνy y
  • for/fコマンドは31以上のトークンを分析することはできません.
  • トークンで指定された数値は自動的に割り当てられ、同じ結果を生成します.
  • 例えば

  • トークン=1,2,3,7−9及び**トークン=1,2,3,7,8,9**は、同様の出力を生成する.
  • 同じトークンは予測できない結果を生み出すかもしれません.トークン変数はもちろん、複数回使用することができます.
  • 例:

  • テキストファイルにリストされたファイルを新しい宛先にコピーするには
  • `

    FOR /f "delims=" %%G in (names.txt) DO copy "\source\folder\%%G" "H:\destination\%%G"

    `

    It assumes the names.txt contains one filename on each line.

    • Extract data from a text file that contains characters and commas

    `

    52, light, red
    75, dark, purple
    95, light, green

    FOR /F "tokens=1,3 delims=," %%G IN colors.txt) DO %%G %%H

    `

    • The toughest part is to separate each line, the “,” splits the lines into 3 ways of text.
    • To split use “tokens=1,3”

    | token=1 (%%G) | token=2 ignored | token=3 (%%H) |
    | 52 | | red |
    | 75 | | purple |
    | 95 | | green |

    • %%G is declared in the FOR statement, and %%H is implicitly declared via the tokens= option.

    • Another method to retrieve the same data would be:

    `

    FOR /F "tokens=1,2,3 delims=," %%G IN (colors.txt) DO %%G %%I

    `

    空白を含む文字列の分割

    While the delims and the tokens are specified, they must separate with space. It will not count as tokens. So, for this reason, *delims * are placed in the last before the close quotation.

    テキスト文字列をパースする

    • The string has to be enclosed in double-quotes.
    • To Echo, just the date from the following string use,

    `

    FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,15-OCT-2021") DO Date paid %%G

    `

    コマンドの出力をパースする

    `

    FOR /F %%G IN ('"C:\program Files\command.exe"') DO ECHO %%G

    `

    ファイルの内容を解析する

    `

    FOR /F "tokens=1,2* delims=," %%G IN (C:\MyDocu~1\mytex~1.txt) DO ECHO %%G

    FOR /F "usebackq tokens=1,2* delims=," %%G IN ("C:\My Documents\my textfile.txt") DO ECHO %%G

    `

    フィラメンセット

    You can use the DIR /b ** command to specify an **exact set of files to be processed , such as all .MP4 files in a folder including subfolders and sorted by date, and use this variant of the FOR command syntax.

    ユニコード

    • The newer commands and the output text files in Unicode format cannot be read by the FOR command, which expects ASCII.
    • You can use the ** TYPE** command to convert the file format.

    This article stated the FOR /F command. If you have any suggestions or questions regarding this article, let us know in the comment section, and we will update it for you shortly.

    関連記事

    The post FOR /F Command: Against the Set of Files appeared first on Windows Commands- SS64 Commands.