私はさまざまなジャンルのフォルダに多くのムービーを持っています。私がバッチファイルを使ってやりたいことは、映画がどこにあるのと同じジャンルのフォルダにある各映画のためのフォルダを作成することです。たとえば:バッチベースのファイル/フォルダの作成
/Movies/SciFi/
/Movies/SciFi/the matrix.avi
/Movies/SciFi/the matrix reloaded.mkv
/Movies/Comedy/
/Movies/Comedy/borat.avi
/Movies/Comedy/dinner for schmucks.avi
は基本的に私は、親フォルダの作品からバッチファイルを実行するのジャンルフォルダ内のすべての* mkvを* .AVI * .MP4ファイルをスキャンし、映画の名に基づいてフォルダを作成します。フォルダの名前は、次のとおりです。
.(moviename without extension).backdrop
もちろん、フォルダが既に存在する場合は作成しないでください。これは私がこれまで持っているものです。
for /f %%f in ('dir *.avi *.mkv *.mp4 /b') do md .%%~nf.backdrop
これはしかし、いくつかの欠点があります。私は、各ジャンルのフォルダ内からそれを実行する必要があり、ファイル名にスペースが含まれている場合、このコマンドは、すべてをキャッチしますスペースまで、aboceコマンドはほとんど役に立ちません。
あなたが私を助けてくれることを願っています。
ただし、このスクリプトを実行すると、*さらなる*サブディレクトリが作成されます。つまり、このソリューションは一度しか使用できないため、FOR/Rは適切なオプションではありません。ディレクトリがすでに存在する場合は、エラーメッセージも表示されます。 – dbenham
次に、 '/ d %% d for(" c:\ movies \ * ")do(...')を使用して、もし存在すればフォルダの存在を確認することができます。 nt/if.html –