
複数のディレクトリで動作するバッチ ファイルがあります:
「folder.jpg」というファイルを探します。存在する場合は、それを使用します。存在しない場合は、「front.jpg」を使用し、それを「cover.jpg」にコピーします。簡単そうです。
問題は、ディレクトリに空白 ( - ) が含まれていることです。
次のバッチ ファイルではエラーが発生します。「EXISTS」バッチ コマンドで使用できるファイル名を取得する方法を教えてください。
「./folder.jpg」も試しましたが、成功しませんでした。
@echo off
set file=%CD%\folder.jpg
set
if exists %file% goto FOLDER
:FRONT
@echo ** copy front.jpg to cover.jpg
copy front.jpg cover.jpg
goto PROCESS
:FOLDER
@echo ** rename folder.jpg to cover.jpg
ren folder.jpg cover.jpg
:PROCESS
@echo ** call dpi
call dpi
@echo ** call size
call size
前もって感謝します!
答え1
主な問題は、構文がIF EXIST
ファイル名(つまり、's' は使用しません)。ファイル名とフォルダ名にスペースが含まれる場合は、引用符を使用します。
set file="%CD%\folder.jpg"
if exist %file% goto FOLDER
または...
set file=%CD%\folder.jpg
if exist "%file%" goto FOLDER
また、3 行目のコード行に本当に bareset
コマンドが必要だったのでしょうか? それだけだと少し寂しい感じがします。
@echo off
最後に、スクリプトの先頭にがある場合、@
すべてのコマンドの先頭にシンボルを配置する必要はありませんecho
。