やりたいこと
Windows10で各フォルダの中にある「ほげほげ_管理ファイル.txt」を「ひげ_管理ファイル.txt」に一括変更したい。
また、Backupフォルダの中にあるファイルも一括変更したい。
今回編集を行うフォルダとファイルの構成イメージは次のようになります。
PS C:\Users\hoge\OneDrive\デスクトップ\work> tree /f
フォルダー パスの一覧
ボリューム シリアル番号は 962B-11F7 です
C:.
├─管理No.1
│ │ ほげほげ_管理ファイル.txt
│ │ 商品_管理ファイル.txt
│ │ 顧客_管理ファイル.txt
│ │
│ └─Backup
│ ほげほげ_管理ファイル_20211028.txt
│
├─管理No.2
│ │ ほげほげ_管理ファイル.txt
│ │ 商品_管理ファイル.txt
│ │ 顧客_管理ファイル.txt
│ │
│ └─Backup
│ ほげほげ_管理ファイル_20211028.txt
│
└─管理No.3
│ ほげほげ_管理ファイル.txt
│ 商品_管理ファイル.txt
│ 顧客_管理ファイル.txt
│
└─Backup
ほげほげ_管理ファイル_20211028.txt
前提:ファイルのリネームの仕方
ファイルのリネームにはPowerShellを使います。
PowerShellとはWindows10に標準インストールされているツールです。
まず、Win10の検索欄からWindows PowerShell
を検索、起動して、次のコマンドを実行します。
すると、管理No.1ディレクトリのファイル名を部分置換できます。
cd C:\Users\hoge\OneDrive\デスクトップ\work\管理No.1
dir | rename-item -newname { $_.name -replace 'ほげほげ_', 'ひげ_'}
・コマンド実行前
PS C:\Users\hoge\OneDrive\デスクトップ\work\管理No.1> dir
ディレクトリ: C:\Users\hoge\OneDrive\デスクトップ\work\管理No.1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---l 2021/10/28 18:19 0 ほげほげ_管理ファイル.txt
-a---l 2021/10/28 18:19 0 商品_管理ファイル.txt
-a---l 2021/10/28 18:21 0 顧客_管理ファイル.txt
・コマンド実行後
PS C:\Users\hoge\OneDrive\デスクトップ\work\管理No.1> dir
ディレクトリ: C:\Users\hoge\OneDrive\デスクトップ\work\管理No.1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---l 2021/10/28 18:19 0 ひげ_管理ファイル.txt
-a---l 2021/10/28 18:19 0 商品_管理ファイル.txt
-a---l 2021/10/28 18:21 0 顧客_管理ファイル.txt
PS C:\Users\hoge\OneDrive\デスクトップ\work\管理No.1>
ディレクトリの中のファイルを書き換える
ディレクトリの中のファイルを一度に書き換えるには、バッチファイルを作成する必要があります。
次のようなファイルを作成、実行することで、ディレクトリ内のファイル名をすべてリネームできます。
$PSScriptRoot
は実行するスクリプトの格納先を自動で保持する変数です。
ファイル名: rename.ps1
# スクリプトの格納先を取得する
$script_dir=$PSScriptRoot
# ディレクトの数だけループする
for ($i=1; $i -lt 4; $i++){
# 各管理Noディレクトリに移動
cd $script_dir\管理No.$i
# ファイルをリネーム
dir | rename-item -newname { $_.name -replace 'ほげほげ_', 'ひげ_'}
# Backupに移動
cd $script_dir\管理No.$i\Backup
# ファイルをリネーム
dir | rename-item -newname { $_.name -replace 'ほげほげ_', 'ひげ_'}
}
workディレクトリでバッチファイルを実行します。
# workディレクトリへ移動
PS C:\Users\hoge> cd C:\Users\hoge\OneDrive\デスクトップ\work
# バッチファイルを実行
PS C:\Users\hoge\OneDrive\デスクトップ\work> .\rename.ps1
すると次のように全てのファイルを書き換えることができます。
PS C:\Users\hoge\OneDrive\デスクトップ\work> tree /f
フォルダー パスの一覧
ボリューム シリアル番号は 962B-11F7 です
C:.
│ rename.ps1
│
├─管理No.1
│ │ ひげ_管理ファイル.txt
│ │ 商品_管理ファイル.txt
│ │ 顧客_管理ファイル.txt
│ │
│ └─Backup
│ ひげ_管理ファイル.txt
│
├─管理No.2
│ │ ひげ_管理ファイル.txt
│ │ 商品_管理ファイル.txt
│ │ 顧客_管理ファイル.txt
│ │
│ └─Backup
│ ひげ_管理ファイル.txt
│
└─管理No.3
│ ひげ_管理ファイル.txt
│ 商品_管理ファイル.txt
│ 顧客_管理ファイル.txt
│
└─Backup
ひげ_管理ファイル.txt