2016-10-20 4 views
0

ディレクトリ内の各ファイルに対して、forループを使用して、コマンドjhove -m PDF-hul -h xml -o C:\Users\N\test.xml %%aを実行します。問題は、ディレクトリから最後のファイルが1つだけ処理されることです。これは私のコードです:どのようにforループバッチのディレクトリ内のすべてのファイルを扱う?

@echo off 

for /f %%a in ('dir /b /s C:\Users\N\test\') do (

jhove -m PDF-hul -h xml -o C:\Users\N\test.xml %%a 

) 


pause 
+2

あなたは必ず最後のファイルだけが処理されていますか? jhoveは毎回test.xmlを上書きするようです。私はjhoveに "ディレクトリ全体を処理する"オプションがあると信じています。 –

+0

@ThorbjørnRavnAndersen私がエコーをしているとき%% aすべてのファイルが表示されます。しかし、私は、jhoveが最後のpdfファイルだけを処理していることをcmd出力に見ています。 johoveには、ディレクトリ全体を処理するオプションがありません。そのため、私はループを使って処理しようとしています。また、処理されたPDFごとにtext.xml出力を個別にする必要があります。 –

+0

jhoveが最後のpfdファイルのみを処理していることをcmd出力にどのように表示しますか? –

答えて

-1

ループは、/ fオプションを使用してテキストファイルをループするように設定されています。私はあなたがそのオプションをドロップすると、そのループ中に各ファイルに適切にアクセスする必要があると思います。

変更については、以下を参照してください:

for %%a in ('dir /b /s C:\Users\N\test\') do (

jhove -m PDF-hul -h xml -o C:\Users\N\test.xml %%a 

) 
+0

いいえ何も持ちません –

+2

'FOR'コマンドの/ Fオプションを使用すると、一重引用符で囲まれたコマンドの出力を取得することもできます。したがって、/ Fが必要です。しかし、あなたは正しい方向にあります。標準の 'FOR'コマンドを使用するだけで、FORコマンドのIN節にディレクトリをリストするだけです。 DIRコマンドは必要ありません。 – Squashman

+0

ああ、それは理にかなっています。ありがとう@スカッシュマン! – Bou1der

関連する問題