回答:
それは実際には非常に簡単です。
forファイルを反復処理して、拡張子を探す必要があります。
for %f in (*) do if not %~xf==.jpg del "%f"
トリックを行う必要があります(ここにコードを記述)
Powershellによる救助
Windows 7/8の時代には、古き良きコマンドラインの後継機です。
Del C:\myFolder\* -exclude '*.jpg'
DelはのエイリアスですRemove-Item。recurse、include、exclude、filterなどのオプションがあります(RegExに使用)
\*特定のフォルダーにファイルを含めるには、追加する必要があります
PowerShell.exe -Command "&{Remove-Item C:\MyFolder\* -Exclude '*.jpg'}"
私はそれがあなたの質問に直接答えているわけではないことを知っていますが、コンバータのオプションを見て、次のことを確認しましたか?
または
私は、さまざまな深さの数百のディレクトリにあるおそらく20,000のファイルを含むWindows 7(NTFSボリューム)のディレクトリTREEで、拡張子「.mp3」を持たないすべてのファイルを見つける方法を探していました。不安、私は使用しました:
cd <theplace>
dir /S | find /V "<DIR>" | find /V "Total" | find /V "bytes" | find /V "Directory" | find /V "Volume" | find /V ".mp3" | more /S
これは、DIRコマンド出力に関連するすべてを削除した後、.mp3と一致しないファイルをリストしました... 99%動作します...一致しないファイルが標準DIR出力のキーワードの1つに指定されていない限り-おそらく、DIRレポートのヘッダー/要約情報を少なくする方法がありますが、ほとんどの方法でこれを実現できたので、気にしませんでした。
/bフラグですdir。dir /b現在のディレクトリ内のファイル名と拡張子のみdir /s /bをリストし、現在およびすべてのサブディレクトリ内のすべてのファイルの完全修飾名をリストします。ループのfind /v代わりに配管することはfor覚えておく必要のある素敵なタッチですが、で動作するとは思わないdel。
/sサブディレクトリにファイルを再帰的に含めるには、各行に追加するだけです。