ここから本文です

複数フォルダ内の連番ファイルをリネームしたいです。 フォルダツリー内の、複...

geo********さん

2019/3/1816:00:58

複数フォルダ内の連番ファイルをリネームしたいです。

フォルダツリー内の、複数フォルダ内の連番ファイル名を、
1からはじまる4桁の連番に一気に変換したいです。

※フォルダ毎のファイル名を0001からの連番にしたいです。

フリーソフトかバッチ等、方法ありませんか?

Flexible Renamerでは、複数フォルダ内の連番ファイルをリネームはできるのですが、
フォルダ分けに関係なく1つの連番になってしまうため、都合がよくありません。

1フォルダづつの対応方法は、わかります。

よろしくおねがいします。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
56
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

usn********さん

リクエストマッチ

2019/3/1910:37:29

> 複数フォルダ内の連番ファイルをリネームしたいです。
・・ あなたが、一番やり易い方法下記サイトを参考にどうぞ・・。
Win 7で複数のファイル名を一括で変更方法
https://121ware.com/qasearch/1007/app/servlet/qadoc?QID=012512
大量のファイルを簡単に連番でリネームする方法(Windowsの標準機能)
https://freesoft.tvbok.com/tips/windows_tips/file-numbering-rename....
複数のファイル名、一括で変更できるって知ってた?
https://enjoy.sso.biglobe.ne.jp/archives/batch_transfomation/

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

lin********さん

2019/3/1909:46:20

「VBScript」による回答です。

このプログラムは、プログラムファイルの存在するフォルダ直下のすべてのサブフォルダが処理対象です。

いったん、ファイル名を配列変数に格納し、小さい順番に並べ替えてから、リネーム処理を行っています。

プログラムファイルの存在するフォルダおよび、サブフォルダ内のサブフォルダは処理対象外です。

たとえば、「Test」というフォルダにプログラムファイルが存在し、そのフォルダ直下に「Test_01」、「Test_02」、「Test_03」、・・・というようなサブフォルダ群が存在した場合、処理対象は、この3つのサブフォルダだけです。

★★★それぞれのサブフォルダで、「0001」から始めています。★★★

以下のプログラムを、メモ帳か、テキストエディタに貼り付け、「~.vbs」という名前で保存します。

「~」の部分は、何でもかまいませんが、「.vbs」の部分は、必ず、半角です。

できたプログラムファイルを、これから連番のファイル名にしたいファイル群が存在するフォルダに放り込んで、ダブルクリック(「シングルクリック」→「Enter」の方が確実)するだけです。

最後に、「Finished!」と表示しますので、「OK」を押して、終了してください。

Option Explicit
Dim c, f, gf, i, j, m, n(), s, so, x
Set so = CreateObject("Scripting.FileSystemObject")
Set gf = so.GetFolder(so.GetParentFolderName(WScript.ScriptFullName))
For Each s In gf.SubFolders
c = - 1
For Each f In s.Files
If f.Name <> WScript.ScriptName Then
c = c + 1
ReDim Preserve n(c)
n(c) = f.Name
End If
Next
For i = 0 to c - 1
For j = i + 1 to c
If n(i) > n(j) Then
x = n(i)
n(i) = n(j)
n(j) = x
End If
Next
Next
For i = 0 to c
Set m = so.GetFile(s & "\" & n(i))
m.Name = Right("000" & CStr(i + 1), 4) & "." & so.GetExtensionName(n(i))
Set m = Nothing
Next
Next
Set gf = Nothing
Set so = Nothing
MsgBox("Finished!")

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる