Search

2017/09/02

Powershellでフォルダ内のファイル名に連番を付ける:lsと%とRename-Itemで

連番はよくやるのでメモ。

ls -File | sort Name | % {$i = 1} { $Newname = "renban_" +
$i.tostring("000")+$_.extension; rename-item $_ $Newname; $i++ }


ls -File :ファイルだけ指定、ls *.jpgでjpgだけとかも。
sort Name :名前でソート。無くても良い
% :foreach-objectのやつ
$Newname = "renban_" + $i.tostring("000")+$_.extension :どんな名前にするか指定すること。$_.extensionを変更すれば任意の拡張子で指定する
$i.tostring("000") :000で0詰めの3桁表示で。ToStringのフォーマットでいろいろと変更できます。

%のforeachは下記のような感じ。
マニュアル見てないので詳細不明。
% {初期実行}{繰り返し実行aaa;bbb;ccc;$i++}


あと、「rename-item」 は 「ren」  で置き換え可能です。
「foreach-object」が「%」で置き換えできるのと同じエイリアスです。
「get-alias」で表示されます。

参考リンク
大量のファイルをPowerShellのコマンドで一括リネームする しばたテックブログ様http://blog.shibata.tech/entry/2015/11/18/185108

List of Aliases Used in PowerShell
http://ilovepowershell.com/2011/11/03/list-of-top-powershell-alias/


2 件のコメント:

  1. 参考にさせていただきました。

    返信削除
  2. 使ってください!powershellは便利ですがマニュアルが無いのでネット情報に頼りっきりです!
    「rename-item」は「ren」のエイリアスなことを最近知ったので追記しておきます。

    返信削除