用批處理實現將檔案以數字重新命名的代碼_DOS/BAT

來源:互聯網
上載者:User
要求:
   1、不能改變a.txt內容的順序
   2、將目前的目錄下的所有jpg檔案以序號的形式重新命名 如:從1-16
   3、如果有16個檔案,必須重新命名為1-16,不允許出現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等命令來擷取檔案名稱的話,擷取的先後次序會有一定規律,導致有些問題不能體現出來
複製代碼 代碼如下:

@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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.