
ある複数フォルダに格納されているファイルを、フォルダ名に
リネームするバッチファイルを作成したいです。
●リネーム前
C:\リネーム\あいうえお\data.txt
C:\リネーム\かきくけこ\data.txt
C:\リネーム\さしすせそ\data1.txt
C:\リネーム\さしすせそ\data2.txt
C:\リネーム\たちつてと\data1.log
C:\リネーム\たちつてと\data2.log
C:\リネーム\なにぬねの\data.log
↓
●リネーム後
C:\リネーム\あいうえお\あいうえお.txt
C:\リネーム\かきくけこ\かきくけこ.txt
C:\リネーム\さしすせそ\さしすせそ 1.txt
C:\リネーム\さしすせそ\さしすせそ 2.txt
C:\リネーム\たちつてと\たちつてと 1.log
C:\リネーム\たちつてと\たちつてと 2.log
C:\リネーム\なにぬねの\なにぬねの.log
知識がなく申し訳ありませんが、お助け願います。。
pause
cd c:\リネーム
dir /s /b C:\リネーム\ > file.tmp
for /f "delims=" %%F in (file.tmp) do (
for /f "delims=\ tokens=3" %%D in ("%%F") do (
REN %%F C:\リネーム\%%D\%%D%%~xF
))
del file.tmp
pause
どうもうまくいきません。。。
No.2ベストアンサー
- 回答日時:
ざっと書いてみました
例外処理やエラー処理など一切省いていますので
想定外のファイル名などついている場合は、動かないかも
「rename.vbs」という名前で存して、マウスでダブルクリックしてみてください
'ここから
myFolder="C:\リネーム\"
set fs=CreateObject("Scripting.FileSystemObject")
set objFolder=fs.GetFolder(myFolder)
Set objRE = CreateObject("VBScript.RegExp")
For Each sf in objFolder.SubFolders
set objSubFolder=fs.GetFolder(sf)
For Each f in objSubFolder.Files
fname=fs.GetFileName(f)
bname=fs.GetBaseName(f)
ext=fs.GetExtensionName(f)
pname=fs.GetFileName(fs.GetParentFolderName(f))
objRE.pattern=".*?([\d]*?$)"
newname=objRE.replace(bname,pname&"$1") &"."&ext
msgbox myFolder&fname&" -> "& myFolder&newname
f.Name=newname
Next
Next
'ここまで
No.1
- 回答日時:
ファイル名をディレクトリ名にあわせるならディレクトリ分けする意味がないような・・・
いわゆるbatではなくwsh(vbs)であればもっとやりやすいと思います。
なお、
hoge1.txt
fuga1.txt
など存在すると競合しますが、絶対にでてこない保証があるという前提でいいのでしょうか?
回答ありがとうございます。
そうなんです、ディレクトリ分けする意味ないんです。。
wshですね、勉強してみます><
競合するとは、複数のディレクトリ内に同じファイル名が存在するとという意味でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) コマンドプロンプトまたはpower shellなどを用いてのフォルダ内のファイル一括リネーム方法をご 4 2022/10/24 09:42
- Mac OS Macで今あるファイルの連番(ページ番号)に足し算をしてリネームしたい 1 2022/10/12 17:22
- Windows Vista・XP AserAspireone USBでのBIOSの書き込み手順実施時電源ランプが点滅して先に進めません 2 2022/06/28 23:30
- フリーソフト サイトで使用していない画像ファイルの削除ソフトを探しています。 3 2023/04/05 10:49
- Mac OS Macのスクリーンショット保存する前に名前を指定したい 3 2022/08/29 04:08
- UNIX・Linux ubuntuサーバーを久々に再起動したらネットにつながらなくなった。 1 2022/06/06 16:21
- WordPress(ワードプレス) ワードプレスの403エラーについて 2 2023/03/06 14:38
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA テキストボックスを選択状...
-
MS-DOSバッチファイルコマンド...
-
findを使うのか?
-
バッチファイルでファイル名を...
-
バッチ処理 特定の文字以降を...
-
C言語のプログラム
-
【ExcelVBA】300万件越えCSVか...
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
CSVデータの文字列置換
-
Excelマクロ 空白セルを無視し...
-
ファイル名を変数で書きこむfwr...
-
【C#】 csvファイルをバイナリ...
-
パワプロ2012決定版のバックア...
-
INPUTタグ disabledの文字色を...
-
rubyを用いたCSVファイルの分割...
-
C# ファイルを読み込みlistvie...
-
PowerShellでファイルの連結方法
-
vbaマクロについて 次のような...
-
複数のファイルをまたぐエクセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
VBA テキストボックスを選択状...
-
[コンパイルエラー 修飾子が不...
-
teratermで、ファイル名をinput...
-
パイソンでテキストファイルが...
-
Access VBA エラー2448について
-
SQLでテキストボックスの文字を...
-
MS-DOSバッチファイルコマンド...
-
超初心者です。シングルクォー...
-
エクセルのデータを大量のテキ...
-
分数の計算のプログラミングです。
-
Ruby ファイルのリネームでのエ...
-
HTMLについて
-
型の値をDataGridViewセルに変換...
-
Dreamweaverでtitleタグ内の一...
-
フォームのResizeイベントについて
-
ASP.NET (VB) データのnull(空...
-
バッチファイルでファイル名を...
-
ダブルクォートで囲まれた文字...
-
アスキー変換 と 逆変換について
おすすめ情報