Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
181 views
in Technique[技术] by (71.8m points)

Multi File Renamer

OK, so I have a large collection of txt files and I need to rename them
I'm trying it this way

Option 1:

for %%f in (*.txt) do set name=%%~nf
ren * "%name%.*"

Example:

1 - File.txt
2 - File.txt
3 - File.txt
renamer.bat

Results:

1 - File.txt
2 - File.txt
3 - File.txt
3 - File.bat the bat file gets renamed

Option 2:

for %%f in (*.txt) do set name=%%~nf
ren "%name%.txt" "(1).txt"

Example:

1 - File.txt
2 - File.txt
3 - File.txt
renamer.bat

Results:

(1).txt
2 - File.txt
3 - File.txt
renamer.bat

My Goal
Results:

(1).txt
(2).txt
(3).txt
renamer.bat

I know I can just highlight all right click and rename all to (1).txt


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To just consecutive numbering, use a counter:

@echo off
setlocal enabledelayedexpansion
set count=0
for %%f in (*.txt) do (
  set /a count+=1
  ECHO ren "%%f" "(!count!).txt"
)

NOTE: I "disarmed" the ren command. Remove the ECHO when you are sure, it does what you want.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...