1

「for /f」で特定の名前のファイルが見つからないという問題があります。このサイトの多くのユーザーは、ファイルまたはパスにスペースが含まれている場合にこの問題を抱えていましたが、ここではそうではありません。簡単な例、「test4.cmd」という名前のバッチ ファイル:

 @echo off
 set ln=%1
 if exist 2013_10_23_Cal_Curve.txt echo The first file exists.
 if exist ~temp1.txt echo The second file exists.
 for /f "skip=%ln% tokens=2" %%a in (2013_10_23_Cal_Curve.txt) do echo Found the first file.
 for /f "skip=%ln% tokens=2" %%a in (~temp1.txt) do echo Found the second file.

出力:

C:\Users\wnc7\Desktop\jmp_test_data>test4 1
最初のファイルが存在します。
2 番目のファイルが存在します。
システムはファイル 2013_10_23_Cal_Curve.txt を見つけることができません。
2 番目のファイルが見つかりました。
2 番目のファイルが見つかりました。
2 番目のファイルが見つかりました。
*(予想される出力は 2 番目のファイルに続きます....)*

findstr などの他のコマンドはファイルを見つけることができますが、for/f では見つけることができません。それでも for/f は、同じ形式で同じディレクトリに記述された ~temp1.txt を見つけることができます。

「usebackq」を試して、ファイル名を引用符で囲みましたが、役に立ちませんでした。どんな助けでも大歓迎です。

マイク

4

1 に答える 1