2013-10-05 92 views
0

我只知道DOS中的基本命令行。我聽說有一個變量可以用來重命名目錄中的文件。我有如下:Dos批處理文件 - 重命名一些文件

C:\ TEMP \ 874540_MyVacation1_x.jpg

C:\ TEMP \ 451157_MyVacation2_x.jpg

C:\ TEMP \ 874211_MyVacation3_x.jpg

Ç :\ TEMP \ 652120_MyVacation4_x.jpg

C:\ TEMP \ 541547_MyVacation5_x.jpg

C:\ TEMP \ 321778_M yVacation6_x.jpg

我試圖擺脫前7個字符,並與bz更換x。因此,它看起來像這樣:

C:\ TEMP \ MyVacation1_bz.jpg

C:\ TEMP \ MyVacation2_bz.jpg

C:\ TEMP \ MyVacation3_bz.jpg

Ç :\ TEMP \ MyVacation4_bz.jpg

C:\ TEMP \ MyVacation5_bz.jpg

C:\ TEMP \ MyVacation6_bz.jpg

我確定有很多基於Windows的應用程序可以同時重命名多個文件。我只是想提高我的DOS命令知識。

我知道這真的很糟糕 - 但是有人能指出我在正確的方向嗎?

@ echo 
cd\ 
c: 
cd temp 
ren "%[1-9]%_MyVacation%_x.jpg" ???? 
+1

如果可以的話,嘗試PowerShell的,而不是:)更容易和更強大。 – Ashigore

+0

使用'_'字符作爲分隔符有一個簡單的方法 - 如果你真的想重命名列出的示例文件的格式:包括這樣的:'C:\ Temp \ 187645327321778_My帶着我的狗度假,現場6_x.jpg' – foxidrive

回答

2

這是一種方法。

@echo off 
cd /d c:\temp 
for /f "delims=" %%F in ('dir /b /a-d^|findstr /rx "[0-9]*_MyVacation[0-9]*_x\.jpg") do (
    for /f "delims=_ tokens=2" %A in ("%%F") do ren "%%F" "%%A_bz.jpg" 
) 
+0

啊,我想過使用子字符串提取和替換,但是第二個'for/f「delims = _」'讓工作變得更簡單,並且也是一種更優雅的方式(如果有關於批處理腳本的優點)。 –

+0

對不起dbenham,但沒有奏效。 – user2849978

+0

OK - 涉及相同的請求但涉及不同的文件模式: C:\ Temp \ 874540_MyVacation1_bob_x。JPG C:\ TEMP \ 451157_MyVacation2_cindy_x.jpg C:\ TEMP \ 874211_MyVacation3_Terri_x.jpg C:\ TEMP \ 652120_MyVacation4_Noel_x.jpg 重命名爲: C:\ TEMP \ MyVacation1_bob_bz.jpg C: \ Temp \ MyVacation2_cindy_bz.jpg C:\ Temp \ MyVacation3_Terri_bz.jpg C:\ Temp \ MyVacation4_Noel_bz.jpg – user2849978

0

溶液sed for Windows

cd /d C:\TEMP 
dir /b *.jpg|sed -nr "s/^[0-9]+_([[:alnum:]_]+)x.jpg/ren \"^&\" \"\1bz.jpg\"/ie" 

..output例如:

 
C:\Temp>DIR /B *.JPG 
451157_MyVacation2_cindy_x.jpg 
451157_MyVacation2_x.jpg 
874211_MyVacation3_Terri_x.jpg 
874211_MyVacation3_x.jpg 
874540_MyVacation1_bob_x.jpg 
874540_MyVacation1_x.jpg 

C:\Temp>dir /b *.jpg|sed -nr "s/^[0-9]+_([[:alnum:]_]+)x.jpg/ren \"^&\" \"\1bz.jpg\"/ie" 

C:\Temp>DIR /B *.JPG 
MyVacation1_bob_bz.jpg 
MyVacation1_bz.jpg 
MyVacation2_bz.jpg 
MyVacation2_cindy_bz.jpg 
MyVacation3_bz.jpg 
MyVacation3_Terri_bz.jpg