2017-04-05 1 views
1

基本的に、フォーマットのファイルが存在する場合はこれを行い、それ以外の場合は実行しないでください。Windows/Batch/CLI | exists/else文が変数で動作しないのはなぜですか?

.batファイルを切り替えると、最後にpauseというcmdウィンドウが点滅するだけです。

+0

オープンCMDウィンドウ、そして、あなたはすべてのエラーが表示されます。また、存在する場合は必要ありませんが、すでに見つかったファイルをループしています。 –

+0

以下の[answer below](http://stackoverflow.com/a/43226133)で指摘されている構文エラーを修正した後、 'else%'節は実行されることは決してありません。ファイルのみ。コードが意図していることを明確に説明しておけば、あなたを助けるのがずっと簡単です。 – aschipfl

答えて

0

elseが行の先頭に置かれている場合は、ifコマンドの一部ではなく、その行は無視されるか、エラーメッセージが印刷されます。閉じ括弧が必要です。そして外側には、コマンド出力を解析するのにfor /fを使用するか、またはforをプレーングする必要があります。そして、あなたはこのようにしてください代わりにif exists

if existを使用する必要があります。バッチファイルをドラッグし、それを実行し、

set format1=txt 
set format2=pdf 

for %%h in (*.%format1%) do ( 
    if exist "%%h" (
     for %%i in (*.%format2%) do ( 
      copy "%%i" "pdf\%%i" 
     ) 
    ) else (
     copy "%%h" "txt\%%h" 
    ) 
) 
+0

こんにちは、返信ありがとうございます。あまり変わっていない。まだ動かない。 – user3108268

+0

@ user3108268 - 更新を確認してください。 – npocmaka

+0

オハイオ州私は存在もtypoだった参照してください? – user3108268

関連する問題