同じディレクトリにある300以上のファイルの名前を含む単純な.txtファイル(myfile.txt)があります。各行は、1つのファイルの名前が含まれており、それぞれのファイル名には、スペースを持っている - のようなもの:私は、各ファイルのバッチ処理したいバッチを変数として読み込み、別のバッチプロセスで変数を使用する
file number one.txt
file number two.txt
file number three.txt
....
file number three hundred and twenty five.txt
をハード私のメインのバッチスクリプト(process.bat)内のすべてのファイル名をコーディングなし。
私のprocess.batは、コマンドラインアプリケーションでファイル(現在ハードコードされている)を開き、処理したファイルを別のディレクトリに保存しますが、元のファイル名を保持します。
私は何とか動的にmyfile.txtのから変数(すなわちファイル名)と「one.txtファイル番号を」交換した後、元のとまったく同じ名前の新しいファイルに処理されたデータを記述する必要が@echo off
setlocal enableextensions disabledelayedexpansionstart
start prooftool -c "file number one.txt" "/processed/file number one.txt"
「処理済み」というフォルダにあります。 mytext.txtからファイル名を読み取るために
私が試した:
for /F "tokens=*" %%A in (myfile.txt) do [process.bat] %%A
しかしprocess.batが処理には何もしています。
テキストファイルの行を変数に読み込む方法を調べましたが、ファイル名のスペースが問題の原因になっている可能性があります。
変数がどこに格納されているのか分かりません(私はメモリ内にあると思いますか?)また、process.batスクリプト(ファイル名は現在ハードコードされています)で変数を処理する方法次の変数などを呼び出して、ディレクトリ内のすべてのファイルをループして処理します。
あなたの時間と忍耐ありがとう!
ありがとうございました。私はこれを試みたが運がない。私はprocess.batを含めるように私の説明を少し拡大してきました – aperr
このprocess.batはほとんど行う は(myfile.txtの)で/ F "トークン= *" のための%% Aを SETLOCAL disableDelayedExpansion をオフ@echo作品prooftool -c "%% A" "C:¥Users¥Per¥Desktop¥batch¥processed¥%% A"を選択してください。txt " しかし、最初のいくつかのファイルだけが処理され、保存されています。処理されたファイルをディスクに書き留めておくのに問題があると思います。myfile.txtを小さめに分割する以外の方法はありませんリストは? 正しく処理されたファイルに加えて、いくつかの0kbファイルが保存され、多くのcmdウィンドウが開きますが、ロックアップして再起動する必要があります。 – aperr
同じドライブに読み書きするのがボトルネックだと思います。別のドライブへの書き込みディレクトリが機能し、すべてのファイルが処理されるようになりました。 – aperr