4

私はほんの少しのバッチを学ぶことにしました。

そこで何か役に立つことをしようと、音楽を整理するためのスクリプトを作成することにしました。それらはすべて次の形式です。

バンド (アルバム) - トラック番号 - トラック名

スクリプトでバンド名のフォルダーを作成し、そのフォルダー内に albuns の名前を作成します。そのため、ファイル名をいじる必要がありますが、FINDSTR やその他の方法を使用して '(' の前と括弧の間の文字列を取得する方法がわかりません。どうすればよいですか?

4

1 に答える 1

3

次のリソースを参考にしてください。

Technet \ DosTips \ SS64 \ Rob van de Woude \ ComputerHope

リストした文字列を解析する方法の例を次に示します。バンド、アルバム、またはトラック名にスペースがある場合、この例は機能しないことに注意してください。

for /f "delims=()- " %%A in ("Band (Album) - TrackNumber - TrackName") do (
    echo Band = "%%~A"
    echo Album = "%%~B"
    echo TrackNumber = "%%~C"
    echo TrackName = "%%~D"
)

出力:

Band = "Band"
Album = "Album"
TrackNumber = "TrackNumber"
TrackName = "TrackName"

ただし、この例では、スペースを区切り文字として使用しないことで機能します。残念ながら、これはスペースが結果から削除されないことを意味します。

for /f "delims=()-" %%A in ("Band Name (Album) - Track Number - Track Name") do (
    echo Band = "%%~A"
    echo Album = "%%~B"
    echo TrackNumber = "%%~C"
    echo TrackName = "%%~D"
)

出力:

Band = "Band Name "
Album = "Album"
TrackNumber = " Track Number "
TrackName = " Track Name"

スペースは文字列から切り取ることができますが、そのテクニックを学習させます :) ヒント、上記のリンクを参照してください。

于 2013-01-21T03:08:48.330 に答える