私はほんの少しのバッチを学ぶことにしました。
そこで何か役に立つことをしようと、音楽を整理するためのスクリプトを作成することにしました。それらはすべて次の形式です。
バンド (アルバム) - トラック番号 - トラック名
スクリプトでバンド名のフォルダーを作成し、そのフォルダー内に albuns の名前を作成します。そのため、ファイル名をいじる必要がありますが、FINDSTR やその他の方法を使用して '(' の前と括弧の間の文字列を取得する方法がわかりません。どうすればよいですか?
私はほんの少しのバッチを学ぶことにしました。
そこで何か役に立つことをしようと、音楽を整理するためのスクリプトを作成することにしました。それらはすべて次の形式です。
バンド (アルバム) - トラック番号 - トラック名
スクリプトでバンド名のフォルダーを作成し、そのフォルダー内に albuns の名前を作成します。そのため、ファイル名をいじる必要がありますが、FINDSTR やその他の方法を使用して '(' の前と括弧の間の文字列を取得する方法がわかりません。どうすればよいですか?
次のリソースを参考にしてください。
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"
スペースは文字列から切り取ることができますが、そのテクニックを学習させます :) ヒント、上記のリンクを参照してください。