小枝から幹をめざして

今は小枝しか拾えてないけどいつか幹にたどり着くんだ。個人的な勉強の忘備録PHP,MySQL,javascript

Powershellで先読み否定でファイル名の一括リネームできたよー。



【jpgのリネーム】
動画サイトputlocker.isからChromeStoreのVideo Downloader professionalという拡張機能を取得
putlockerで再生ボタンを押してから緑矢印でダウンロード開始。
FreeVideo to JPG Converterで1秒ごとにキャプチャを作成。
Desperete housewives season1...... 0001.jpgというファイルが数千できる。
そのファイルをF:\folder以下に格納しpowershellで以下のようにする。(サブフォルダ内は不可)

PS F:\> Get-ChildItem F:\folder\* | foreach-object { Rename-Item $_ -NewName ($_ -replace ‘^((?!\d{4}).)*’,'’)}
これで直下のフォルダ内のリネームができる。
【^((?!\d{4}).)*】こういう使い方はすごいと思う。


【mp4のリネーム】
ついでに映像名も(この場合C:\Users\ari\Videos\desperateHousewivesフォルダ内のmp4動画)
PS F:\> Get-ChildItem -r C:\Users\ari\Videos\desperateHousewives\* | foreach-object { Rename-Item $_ -NewName ($_ -repla
ce ‘ Online Free Putlocker  Putlocker - Movies Online Free’,'’)}
このようにしてリネームできた。

ちなみにGet-ChildItem -rを抜くと
Rename-Item : ソース パスとターゲット パスを同じにすることはできません。

というエラーが出る。どうしたものか。

【サブフォルダ内のjpgリネーム】
F:\folderに「」などのサブフォルダがある状態で
Get-ChildItem F:\folder\* | foreach-object { Rename-Item $_ -NewName ($_ -replace ‘^((?!\d{4}).)*’,'’)}
をすると【サブフォルダの名前が変わってしまった!】
結論【Rename-Itemでフォルダ名も変えられる】

Get-ChildItem -r とすると ファイルが存在しないと出る…

【サブフォルダ内のjpgリネーム 再トライ】
Get-ChildItem -r C:\Users\ari\Videos\desperateHousewives\jpg\*
これでサブフォルダ内のファイルが全部出力されるので、おそらくパイプでrenameに渡ってる変数$_がだめみたい。
ここを見て解決。フルパス指定すればいい。

Get-ChildItem -r C:\Users\ari\Videos\desperateHousewives\jpg\* | foreach-object { Rename-Item -Path $_.FullName -NewName ($_ -replace ‘^((?!\d{4}).)*’,'’)}