バッチファイルを作成したいとしましょう。私はビデオ ファイルを扱っており、このよく知られたツール MediaInfo を使用しています。また、Windows には CLI バージョンがあります。
フォルダー内の一連のファイルの名前を変更したいとしましょう。だから私はこれを実行します:
for /r %%i in (*.mkv) do call ren "%%i" "renamed_files.mkv"
つまり、ディレクトリ内のすべての.mkv
ファイルを取得して名前を変更します。それは素晴らしいことです。
.mkv
しかし、すべてのファイルではなく、特定のファイルのみの名前を変更したい場合はどうすればよいでしょうか? たとえば.mkv
、音声のあるファイルとないファイルが複数あります。そして、オーディオがあるものだけの名前を変更したいとしましょう。そのためには、オーディオを含むファイルをスキャン/検出するためのソリューションを使用する必要があります。そのために、MediaInfo CLI を使用しない理由を考えました。したがって、次のコマンドを実行します。
mediainfo --inform="Audio;%ID%" file.mkv
2
すると、オーディオ トラックの ID が出力されます。この ID を使用して、オーディオが存在し、.mkv
ファイルの名前を変更する必要があることを確認できます。また、音声がない場合は何も出力されず、空の行になるため、それらのファイルはスキップする必要があります。
理にかなっていますが、それをif
ステートメントにまとめて機能させる方法がわかりません。コマンドプロンプトとバッチファイルを2日間学習しています。
または、誰かがさらに良い解決策を知っているかもしれません。そのためのGUIを備えたサードパーティのソフトウェアをインストールすることに興味がないことを除いて。
乾杯!