いつもご覧いただきありがとうございます。 takaです。
仕事をしていると、この作業毎回やっているなぁ・・と思う事が度々あります。
そんな時に役に立つのが、Google Apps ScriptやPowerShellやPythonなどです。私はプログラマーではありませんので、自分のできる範囲でどうにか業務効率化したいと思い、簡単なものから取り組んでいます。
今回は、PowerShellでフォルダ名、ファイル名を変更する方法 について書いてみたいと思います。初心者の方に向けてできるだけ簡単に書いていきたいと思いますので、興味のある方はぜひご覧ください。
こちらの記事は「マイクロソフトの著作物の使用について」を参照し、ガイドラインに沿って記事にしています。不適切な内容がございましたらお問い合わせフォームよりお知らせください。
PowerShellって?
PowerShellはWindows、Linux、および macOS上で実行できる、タスクの自動化ツールです。Windowsに標準でインストールされているので、Windowsユーザーなら無料で使用できます。
コマンドプロンプトでも一括処理などが出来ますが、PowerShellは扱えるコマンドも多く、コマンドプロンプトより複雑な処理が出来ます。※PowerShellのコマンドはcmdlets(コマンドレット)と言います。
概要については以下の記事をごらんください。
フォルダ内のファイル名を変更したい
業務の中でファイル名を大量に変更したい場合があります。
1つや2つならもたいした作業ではありませんが、100個のファイル名を変更したい場合、一つずつ変更するのは大変です。そんな時に役に立つのがWindowsに標準で搭載されているPowerShellです。
PowerShellを使用するとファイル名の取得やファイル名の変更が一括で出来ます。前回は基本的な操作を確認するために、1件ずつ項目名(フォルダ名やファイル名)を変更する方法について書きましたが、今回はExcelをつかってまとめて変更する方法を記事にしたいと思います。
必要なもの
・Windows PowerShell
・Microsoft Excel(以降Excelと記載) ※今回はExcelを使用した方法で説明しています。
指定した項目名を変更する Rename-Item
では実際に変更してみます。
使用するコマンドレット:Rename-Item
手順
1.デスクトップ等の適当な場所に作業用のフォルダを作成する(今回は test で作成)
※わかりやすいように毎回デスクトップのtestフォルダで説明しています。
2.変更するファイルをtestに移動またはコピーする
3.指定したフォルダ内の項目名のみを取得する
4.Excelで元になるデータを作成する
5.PowerShellにExcelで作成したデータを貼り付ける
1.デスクトップ等の適当な場所に作業用のフォルダを作成する
デスクトップ等の適当な場所に作業用のフォルダを作成します。(今回は test で作成)
※わかりやすいように毎回デスクトップのtestフォルダで説明しています。
2.変更するファイルをtestに移動またはコピーする
項目名を変更したいファイルやフォルダをtestフォルダに入れます。
慣れるまではコピーしたファイルで試すほうが安心です。

3.指定したフォルダ内の項目名のみを取得する
PowerShellコンソールに下記のコードを入力します。
※username の部分は使用しているユーザーに合わせて変更してください。※通常は自動で表示されているので、 Get-ChildItem以降を入力してください。
※保存場所(Desktop)は設定により異なります。
PS C:\Users\username> Get-ChildItem Desktop\test -Name
ファイル名のみが取得されました。

4.Excelで元になるデータを作成する
前回は1件ずつデータを変更しましたが、複数まとめて変更するためにExcelでデータを作成します。
元になるコードはこちらになります。変更するデータに合わせて複数行作成します。
Rename-Item -Path "C:\Users\username\Desktop\test\フォルダ1" -NewName "画像フォルダ-1"
データの構造については以下の記事で説明しています。
Excelでデータを作成する方法の一例
Excelに入力する内容 2行目の入力例 | ||
A列 | Rename-Item -Path “C:\Users\【usernameを入れる】\Desktop\test\ | |
B列 | 変更前の項目名(フォルダ名やファイル名) | |
C列 | ” -NewName “ | |
D列 | 変更後の項目名 | |
E列 | “ | |
G列 | =CONCATENATE(A2,B2,C2,D2,E2) | |
G列の結果 | Rename-Item -Path “C:\Users\username\Desktop\test\画像フォルダ1” -NewName “画像フォルダ-1” |
解説
A列:保存先のフォルダのパス
Rename-Item■-Path■”C:\Users\【usernameを入れる】\Desktop\test\ ←■の部分は半角スペースが入ります。
B列:変更前の項目名 ※Get-ChildItemで取得した内容をコンソールからコピーして貼り付けます。
C列:”■-NewName■” ←■の部分は半角スペースが入ります。
D列:変更後の項目名を入れます。
G列:文字列を結合する関数を入れます。
以下のように必要な件数分のデータを作成します。

5.PowerShellにExcelで作成したデータを貼り付ける
G列のデータのみをコピーしてPowerShellのコンソールに貼り付けてエンターキーを押します。


testフォルダ内のフォルダ名とファイル名が変更されました。※一部変更していないフォルダもあります。

説明だけみると面倒そうに感じるかもしれませんが、Excelファイルは一度作成すれば、変更前と変更後のファイル名を変更するだけで使いまわすことが出来ます。
こちらの方法は一例ですので、他にもまとめて変更する方法はあります。また機会があれば記事にしてみたいと思います。
こちらの記事が少しでも皆様のお役に立てれば幸いです。記事に関するご意見、ご感想がございましたら、コメント欄よりお願いします。今後の記事作成の参考にさせていただきます。
コメント