共有フォルダを整理したい(その4_フォルダやファイル名を変える_応用編)
その3では、フォルダやファイルの名前を手動でできるだけ効率的に変える方法と簡単なプログラミングとエクセルを使って自動的に一括変換する方法を紹介しました。
その4では、powershellやVBAマクロを使った自動処理について紹介します。一番簡単ですが、応用するには一定の情報処理技術が必要となります。
1.powershellを使って、フォルダやファイル名を一括で自動追加します。
a.フォルダやファイル名の先頭に同じ文字列を一括で自動追加する方法
特定フォルダ内のフォルダやファイル名の先頭に指定の文字列を追記したい場合、powershellを使えば一行で実現可能です。変更したいフォルダのアドレスバーに「powershell」と入力し、次のコードをコピーして、「Enter」キーを押します。ここでは先頭に追加したい文字列を「100_」としています。
Get-ChildItem | Rename-Item -NewName {$_.Name -replace '^','100_'}
すると、次のようにフォルダの先頭に「100_」が自動で表示されます。
b.フォルダ名の先頭に連続した番号と記号を一括で自動追加する方法
特定フォルダ内のフォルダ名の先頭に連続した番号と記号を追記したい場合、powershellをコードを組み合わせれば実現可能です。変更したいフォルダのアドレスバーに「powershell」と入力し、次のコードをコピーして、「Enter」キーを押します。ここでは先頭に追加したい番号と記号を「010_」「020_」「030_」・・・としています。
$counter = 10
Get-ChildItem -Path . -Directory | foreach{
[string]$format = "{0:000}" -f $counter
$newName = $format + "_" + $_.Name
Rename-Item $_ -NewName $newName
$counter = $counter + 10
}
すると、次のように先頭に連続した番号と記号が自動で表示されます。
以下、上記のコードを一つずつ解説します。
$counter = 10
連番を10からスタートさせるためにcounterを10にします。今後、このcounterを20、30、40、50・・・とカウントアップさせます。
Get-ChildItem -Path . -Directory
カレントディレクトリのフォルダ一覧を取得します。
foreach{ }
{ }内で配列をループ処理します。
[string]$format = "{0:000}" -f $counter
$format変数に「0」なら「000」となるよう入力します。「-f」を使ってcounterを初期化します。
$newName = $format + "_" + $_.Name
新しいフォルダ名を作ります。既存のフォルダ名に連番と「_」を追加して「010_フォルダ名」、「0020_フォルダ名」・・となるようにします。
Rename-Item $_ -NewName $newName
前の行で作ったフォルダ名に変更します。
$counter = $counter + 10
連番を10ずつ増加させます。以上です。
2.VBAマクロを使う方法
次のサイトにVBAマクロが作成されていたので、注意書きに従って利用するのが一番早いと思います。
上記のサイトから入手したエクセルシートです。
https://excel-macro.com/wp-content/uploads/2020/12/change_folder.xlsm
VBAは未だ勉強中なので、細かいマクロの解説は省略します。
作業フォルダ名に変更したいフォルダのアドレスをテキストでコピーして「フォルダ名取得」ボタンを押します。変更後ファイル名を入力して「フォルダ名変更」ボタンを押します。
すると、以下のような実行結果が示されます、当該フォルダの名前も変更されています。
実際のフォルダ名も以下のとおり変更されています。素晴らしい。
以上、その1からその4まで共有フォルダの整理についてまとめてみました。最後まで読んでいただきありがとうございました。
社内情シス担当の方など、その4だけ読めば良かったと思う方もいるかもしれませんが、フォルダ整理のプロセス、ICTの可用性、情報セキュリティのマネジメントを共有した上で、その応用について考えたいと思って記載しました。
次回は、番外編としてショートカット集の効率的な作り方について紹介したいと思います。あと、バックアップを自動化するbatファイルの作り方も記載できればと思っています。
この記事が気に入ったらサポートをしてみませんか?