「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」を試して、ファイル名を引用符で囲みましたが、役に立ちませんでした。どんな助けでも大歓迎です。
マイク