web-dev-qa-db-ja.com

ファイルの一括名前変更のためにワイルドカード文字列の一部としてスペースを指定する方法

ファイル名が次のように構成されているフォルダに約1200曲あります。

アーティスト名-song_name.mp3

例えば:

Billy Joel - Piano Man.mp3
The Beatles - Nowhere Man.mp3

Windows PowerShellでDOSコマンドを使用して、これらのファイルの名前を一括変更して、ハイフンの両側のスペースを削除したいと思います。ただし、すべてのスペースを削除したくはありません。基本的な問題は、ディレクトリ内のすべてのファイルの「-」を「-」に変更するために、ファイル名の仕様にスペースを含めることができることです。これが私が変更したいもののいくつかの例です:

既存のファイル名

Billy Joel - Piano Man.mp3
The Beatles - Nowhere Man.mp3

必要なファイル名

Billy Joel-Piano Man.mp3
The Beatles-Nowhere Man.mp3

ディレクトリ内のすべてのファイルにそのような変更を加えるためにコマンドプロンプトで実行できるDOSコマンドを誰かが考えることができますか?

DIRコマンドを使用してそのようなすべてのファイルを一覧表示するには、次を使用できることがわかりました。

DIR asterisk+doublequote+space+hyphen+space+doublequote+asterisk+dot+asterisk

このフォーラムでは、実際の構文がフォーマット手順として扱われているように見えるため、そのように書き出す必要がありました。

これは、space-hyphen-spaceの3文字の文字列を持つすべてのファイルを一覧表示します。

確かに、方法があるに違いありません。

4
Ed S.

次のコマンドを実行できます。

ls | %{ ren $_ ($_.name -replace ' - ','-') }

powershellを使用します。これにより、{space}-{space}-に置き換えられます。

2
Jonno

非常に強力な一括名前変更機能が組み込まれている " Total Commander "のようなファイルマネージャープログラムを使用できます。

1
David G