[[20210527153309]] 『ファイル名の一括変更』(右近) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ファイル名の一括変更』(右近)

お尋ねいたします。
複数ある以下のようなファイルの名前を一括で変更する方法を教えていただきたく、質問させていただきます。
ファイル名すべてを一括変更する方法は確認できたのですが…
よろしくお願いいたします。

変更前
(6月分)山田花子
(6月分)鈴木次郎
(6月分)佐藤太郎

変更後
(R3.6)山田花子
(R3.6)鈴木次郎
(R3.6)佐藤太郎

< 使用 Excel:Excel2019、使用 OS:Windows10 >


>ファイル名すべてを一括変更する方法は確認できたのですが…
それはどんな方法なんでしょうか。
同じようにできないのですか?

(γ) 2021/05/27(木) 15:40


変換部分だけ。
変更前のファイル名が変数「f」に入っているとして。

 f = Replace("(R3." & Mid(f, 2), "月分)", ")")

(ひまつぶし) 2021/05/27(木) 15:46


https://www.canon-sas.co.jp/cocotsuna/pc_qanda/201612.html
こういうのがあったんですが、ちょっと希望と違うんです。
(右近) 2021/05/27(木) 21:34

詰まっている部分が分かりませんので、とりあえずヒントなど。

【リネーム(ファイル名の変更)】
http://officetanaka.net/excel/vba/tips/tips91.htm

【置換(Replace関数)】
http://officetanaka.net/excel/vba/function/replace.htm
https://www.sejuku.net/blog/31570

今回のケースでは"一括"変更と考えずに、例えばフォルダ内にあるファイルを巡回して、ファイル名に(6月分)があったら(R3.6)に置換すると考えてみてはどうでしょうか?

(もこな2) 2021/05/27(木) 22:07


はい、まさにもこな2さんがおっしゃるとおり、変更ではなく、置換になるのかと思います。
ただ、データ内であれば、容易にできるのですが、ファイル名を置換するとなると・・・
(右近) 2021/05/27(木) 22:09

https://4thsight.xyz/16468
PowerShellを使ってみました。
 Get-ChildItem ここにフォルダーパス -File | Rename-Item -NewName { $_.Name -replace '\(6月分\)','(R2.6)' }

(マナ) 2021/05/27(木) 23:49


失礼しました。6月とは限らないですね。

 Get-ChildItem ここにフォルダーパス -File | Rename-Item -NewName { $_.Name -replace '\(([0-9]{1,2})月分\)','(R2.$1)' }

(マナ) 2021/05/28(金) 00:19


ありがとうございます。

まず、前提として、ドキュメント内に「R3.5」というフォルダがあり、その中に複数のファイル、ファイル名「(R3.5)山田花子」があり、これの()部分の置換をしたい。毎月、月を変えたい。来月であれば、「(R3.6)山田花子」としたい。

具体的に手順を確認させてください。
まず、Windows Power Shellアプリを開いて、
PS C:\Users\(ユーザー名)> ←この後にご教授いただいた以下を入力するということでしょうか?
入力後、Enterキーでよいのでしょうか?
この置換のタイミングは、置換したい月に入ってから行うのでしょうか?
どうぞよろしくお願いいたします。

Get-ChildItem (C:\Users\(ユーザー名)\Documents\R3.6) -File | Rename-Item -NewName { $_.Name -replace '\(([0-9]{1,2})月分\)','(R3.$1)' }
(右近) 2021/05/28(金) 07:25


PowerShell案でいこうとしてるということは、もともとノープランだったということですかね。

それはそれとして、まだ話が理解できませんが、

 C:\Users\hogehoge\Documents\
 └R3.5\
 │├(5月分)山田花子.xlsx
 │├(5月分)鈴木次郎.xlsx
 │└(5月分)佐藤太郎.xlsx
 └R3.6\
  ├(6月分)山田花子.xlsx
  ├(6月分)鈴木次郎.xlsx
  └(6月分)佐藤太郎.xlsx

↑みたいになってるなら、
【ファイル名】のうち()の中身を親フォルダの名前と同じにすればよいのではありませんか?

(もこな2) 2021/05/28(金) 11:45


  >PS C:\Users\(ユーザー名)> ←この後にご教授いただいた以下を入力するということでしょうか?

 はい。メモ帳などで編集して、それをコピペするとよいです。

 >入力後、Enterキーでよいのでしょうか?

 はい。

 >この置換のタイミングは、置換したい月に入ってから行うのでしょうか?

 いつ実行しても同じです。
 月1回の作業なら、あまり凝ったことしないで
 最初のでよかったかもしれません。

  Get-ChildItem ここにフォルダーパス -File | Rename-Item -NewName { $_.Name -replace '\(6月分\)','(R2.6)' } 
                ^^^^^^^^^^^^^^^^^^^^^                                                   ^^         ^^^^
 前月使ったメモ帳から^^^^部分だけ修正するなら
 そんなに手間ではないですよね。

(マナ) 2021/05/28(金) 19:43


皆さん、ありがとうございます。
明日、ご返事させてください。
よろしくお願いします。
(右近) 2021/05/28(金) 23:56

ご返事が遅くなり、申し訳ありません。
マナさんからご教授いただいたWindows Powershellでの一括変換を試したところ、見事に変換できました。
もこな2さんがおっしゃるとおり、ファイル名のうち()の中身を親フォルダの名前と同じにしたいというものですが、マナさんのやり方以外で方法があるでしょうか?
毎月作成するものですので、より簡単に作成していければと思っています。

(右近) 2021/06/01(火) 07:09


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.