フォルダ名からタイトルを検索して移動するスクリプト

録画したアニメやその他を、とあるフォルダに一律に一緒くたに保存しているので、それを整理するPowerShellスクリプトを作った。

$Folders =  Get-ChildItem * | Where-Object { $_.PSIsContainer} 
foreach($dName in $Folders) 
{
    echo "Search: $dName"
    $title = $dname.Name
    $targerfiles = Get-ChildItem *.MP4 
    foreach($file in $targerfiles)
    {
        if ($file.Name -like "*$title*")
        {
           Move-Item -LiteralPath $file.name -Destination $dname.FullName -Verbose 
        }
    }
}

何をやっているかというと、フォルダ名を引っ張ってきて、そのフォルダ名が含まれるファイルをそのフォルダに移動するだけ。
たとえば、「きょうの料理」ってフォルダを作っておくと「きょうの料理」のファイルだけがそのフォルダに移動する。
パラメーターに -LiteralPath を指定しないと、ファイル名に自動的に付く[新]や[終]や[字]という単語(?)が含まれていると、([]をワイルドカード扱いしてしまうために)処理をスキップしてしまう。覚えた。