0

正規表現とPowerShellを使用して名前を変更したいファイルがいくつかありますが、ファイルのパターンがわかりません。

名前を変更する必要があるファイル名の例と、最終的にどのようになるか。スペースを考慮して名前を「」に配置します。

ファイルの名前の付け方

「[abs]anima.somee147 name [480p].avi」
「anima.somee147name #anim group.avi」
「anima.somee147name [480p].avi」
「animasomee147 name [480p].avi」

名前の付け方

「アニメsomee147.avi」</p>

4

1 に答える 1

1

どうですか:

# Create array of filenames
$files = 
"[abs] anima.some e147 name [480p].avi",
"anima.some e147 name #anim group .avi",
"anima.some e147 name [480p].avi",
"anima some e147 name [480p].avi"

# Setup patterns to match against
$pattern1 = "\[\w+\] ([^.]+).([\w]+) ([\S]+) [\w]+ \[[\w]+\].avi"
$pattern2 = "([^.\s]+).([\w]+) ([\S]+) .*.avi"

# Loop through file names and attempt matching
foreach($f in $files)
{
    if($f -match $pattern1)
    {
        $string = (Get-Culture).TextInfo.ToTitleCase($matches[1]) + " " + $matches[2] + " " + $matches[3] + ".avi"
        $string
    }
    elseif($f -match $pattern2)
    {
        $string = (Get-Culture).TextInfo.ToTitleCase($matches[1]) + " " + $matches[2] + " " + $matches[3] + ".avi"
        $string
    }
    else
    {
        "unmatched file: " + $f
    }
}

出力は次のとおりです。

Anima some e147.avi
Anima some e147.avi
Anima some e147.avi
Anima some e147.avi
于 2012-06-29T15:28:39.157 に答える