批量获取括号中的字符串

时间:2013-01-20 23:18:24

标签: batch-file

我刚决定学习一点。

为了做一些有用的事情我决定创建一个脚本来组织我的音乐。它们都是这种格式:

Band(专辑) - TrackNumber - TrackName

我希望我的脚本创建一个带有乐队名称的文件夹,并在其中创建一个albuns名称的文件夹。所以我需要使用文件名,但我不知道如何使用FINDSTR或任何其他方法来获取'('和parentesis之间的字符串。我怎么能这样做?

1 个答案:

答案 0 :(得分: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"

可以从琴弦中修剪空格,但我会让你学习这种技巧:) 提示,请参阅上面的链接。