我只知道DOS中的基本命令行。我听说有一个变量可以用来重命名目录中的文件。我所拥有的是以下内容:
C:\温度\ 874540_MyVacation1_x.jpg
C:\温度\ 451157_MyVacation2_x.jpg
C:\温度\ 874211_MyVacation3_x.jpg
C:\温度\ 652120_MyVacation4_x.jpg
C:\温度\ 541547_MyVacation5_x.jpg
C:\温度\ 321778_MyVacation6_x.jpg
我正在尝试删除前7个字符,并将x
替换为bz
。所以它看起来像这样:
C:\温度\ MyVacation1_bz.jpg
C:\温度\ MyVacation2_bz.jpg
C:\温度\ MyVacation3_bz.jpg
C:\温度\ MyVacation4_bz.jpg
C:\温度\ MyVacation5_bz.jpg
C:\温度\ MyVacation6_bz.jpg
我确信有很多基于Windows(免费软件)的应用程序可以一次重命名多个文件。我只是想提高我的DOS命令知识。
我知道这真的很糟糕 - 但是有人能指出我在正确的方向吗?
@ echo
cd\
c:
cd temp
ren "%[1-9]%_MyVacation%_x.jpg" ????
答案 0 :(得分: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"
)
答案 1 :(得分:0)
sed for Windows的解决方案:
cd /d C:\TEMP
dir /b *.jpg|sed -nr "s/^[0-9]+_([[:alnum:]_]+)x.jpg/ren \"^&\" \"\1bz.jpg\"/ie"
..输出示例:
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