バッチファイル FOR コマンドで行をスキップする

バッチファイル FOR コマンドで行をスキップする

バッチ ファイリングの FOR コマンドについて助けが必要です。やりたいことは、ファイル「Test.txt」を読み取り、3 行目だけを読み取って、このバッチ ファイル内で使用可能な変数に変換することです。以下は私が試したことですが、うまくいきませんでした。

for /f "skip=2 delims=" %%a in (Test.txt) do (
  set %%a=%LineThree%
)

プログラムを実行すると、「システムはファイル Test.txt を見つけることができません。ご協力いただければ幸いです。」と表示されます。

答え1

  1. Test.txtこのエラーは、スクリプトを実行しているディレクトリと同じディレクトリにファイルが存在しないことを示しています。
  2. テキストファイルから3行目だけを取得するには、次のように実行します。どれでもサイズのファイル全体を実行する代わりに、(そしてあなたの場合は間違っています...実際には3行おき)。

    (/l %%a in (1,1,3) の場合は /p LineThree= を設定してください) < Test.txt

    エコー %LineThree%

別のコメントで述べたように、ファイル名だけではなく、ファイルへの完全なパスを試してみるとよいでしょう。

答え2

あなたのコードの主な問題は、引用符が抜けていることです。で (...)

そのはず:

for /f "skip=2 delims=" %%a in ('Test.txt') do (
  set %%a=%LineThree%
)

それでもうまくいかない場合は、フルパスを書いてみてくださいTest.txt(他の人が示唆したように)

関連情報