用批處理實現(xiàn)將文件以數(shù)字重命名的代碼
更新時間:2008年06月09日 23:04:29 作者:
討論:將文件以數(shù)字重命名
看似簡單,其實不然。
現(xiàn)有a.txt文件內容如下,一行一個文件名。路徑為當前目錄。
要求:
1、不能改變a.txt內容的順序
2、將當前目錄下的所有jpg文件以序號的形式重命名 如:從1-16
3、如果有16個文件,必須重命名為1-16,不允許出現(xiàn)16之后的序號
a.txt 內容:
2.jpg
1.jpg
a.jpg
5ww.jpg
c.jpg
f.jpg
rty.jpg
3.jpg
11.jpg
b.jpg
6.jpg
e.jpg
8.jpg
111.jpg
7.jpg
30.jpg
a.txt中的內容其實就是當前文件夾下的jpg文件列表。
要求將當前文件夾里的所有jpg文件以序號的形式重命名。
但只能從 a.txt 獲取當前文件夾里的所有 jpg 的文件名。
以序號重命名文件,陷阱重重,但如果用dir或for等命令來獲取文件名的話,獲取的先后次序會有一定規(guī)律,導致有些問題不能體現(xiàn)出來
@echo on
setlocal enabledelayedexpansion
set n=0
set n1=0
for /f "tokens=*" %%a in (a.txt) do (
set /a n+=1
ren %%a t!n!.jpg
)
:loop
set /a n1+=1
ren t%n1%.jpg %n1%.jpg&&goto :loop
exit
第二種方法
好像可以更簡單點
@echo off
ren *.jpg t*.jpg
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir/b "t*.jpg"') do (
set str=%%a&set str=!str:~1!
ren "%%a" "!str!"
)
pause
1、不能改變a.txt內容的順序
2、將當前目錄下的所有jpg文件以序號的形式重命名 如:從1-16
3、如果有16個文件,必須重命名為1-16,不允許出現(xiàn)16之后的序號
a.txt 內容:
復制代碼 代碼如下:
2.jpg
1.jpg
a.jpg
5ww.jpg
c.jpg
f.jpg
rty.jpg
3.jpg
11.jpg
b.jpg
6.jpg
e.jpg
8.jpg
111.jpg
7.jpg
30.jpg
a.txt中的內容其實就是當前文件夾下的jpg文件列表。
要求將當前文件夾里的所有jpg文件以序號的形式重命名。
但只能從 a.txt 獲取當前文件夾里的所有 jpg 的文件名。
以序號重命名文件,陷阱重重,但如果用dir或for等命令來獲取文件名的話,獲取的先后次序會有一定規(guī)律,導致有些問題不能體現(xiàn)出來
復制代碼 代碼如下:
@echo on
setlocal enabledelayedexpansion
set n=0
set n1=0
for /f "tokens=*" %%a in (a.txt) do (
set /a n+=1
ren %%a t!n!.jpg
)
:loop
set /a n1+=1
ren t%n1%.jpg %n1%.jpg&&goto :loop
exit
第二種方法
好像可以更簡單點
復制代碼 代碼如下:
@echo off
ren *.jpg t*.jpg
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir/b "t*.jpg"') do (
set str=%%a&set str=!str:~1!
ren "%%a" "!str!"
)
pause
相關文章
dos命令或批處理 發(fā)生系統(tǒng)錯誤5 拒絕訪問
在dos下運行net start mysql 不能啟動mysql!提示發(fā)生系統(tǒng)錯誤 5;拒絕訪問! 這是因為權限不夠的問題。2011-03-03