2017-02-21 1 views
0

同じディレクトリにある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スクリプト(ファイル名は現在ハードコードされています)で変数を処理する方法次の変数などを呼び出して、ディレクトリ内のすべてのファイルをループして処理します。

あなたの時間と忍耐ありがとう!

答えて

0

metavariableを引用

for /F "tokens=*" %%A in (myfile.txt) do [process.bat] "%%A" 

を試してみては、スペース、単一のトークンを含む文字列全体を、作ります。あなたは私たちにprocess.batを示していないので、悲しいことに、私たちは推測しています。あなたのprocess.batファイルで

、あなたは

start "some windowtitle" prooftool -c "%~1" "\processed\%~1" 

startがウィンドウタイトルとして最初の引用符で囲まれた文字列を使用して必要があると思います。あなたは望むなら空文字列にすることができますが、省略しないでください。

"%~1"は、quote (the-first-parameter-stripped-of-quotes)を意味します。

winbatchのパス区切り文字は\です。 /は、スイッチを示すために使用されます。場合によってはいつもではないが、/\に翻訳されています - 正しい文字を使用することをおすすめします。

+0

ありがとうございました。私はこれを試みたが運がない。私はprocess.batを含めるように私の説明を少し拡大してきました – aperr

+0

この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

+0

同じドライブに読み書きするのがボトルネックだと思います。別のドライブへの書き込みディレクトリが機能し、すべてのファイルが処理されるようになりました。 – aperr

関連する問題