Siv*_*iva 2 windows-xp batch-rename
Windows XP 命令提示符重命名此任务的命令?
改名...
file.mp3.0001.mp3
file.mp3.0002.mp3
file.mp3.0003.mp3
file.mp3.0004.mp3
Run Code Online (Sandbox Code Playgroud)
到
afile.mp3.0001.mp3
afile.mp3.0002.mp3
afile.mp3.0003.mp3
afile.mp3.0004.mp3
Run Code Online (Sandbox Code Playgroud)
进而
afile.mp3.0001.mp3
afile.mp3.0002.mp3
afile.mp3.0003.mp3
afile.mp3.0004.mp3
Run Code Online (Sandbox Code Playgroud)
到
bbfile.mp3.0001.mp3
bbfile.mp3.0002.mp3
bbfile.mp3.0003.mp3
bbfile.mp3.0004.mp3
Run Code Online (Sandbox Code Playgroud)
进而
afile.mp3.0001.mp3
afile.mp3.0002.mp3
afile.mp3.0003.mp3
afile.mp3.0004.mp3
Run Code Online (Sandbox Code Playgroud)
到
b.bfile.mp3.0001.mp3
b.bfile.mp3.0002.mp3
b.bfile.mp3.0003.mp3
b.bfile.mp3.0004.mp3
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
只是一个从“*.mp3”重命名为“bb*.mp3”的控制台命令 - 它的功能是:
for /f "delims=" %i in ('dir /b /on /a-d *.mp3') do ren "%i%" "b.b%i"
Run Code Online (Sandbox Code Playgroud)
但如果你想要分步进行,那就更困难了,就像我在如何在 Windows 中一次重命名 80.000 个文件中的解决方案- 我根据你的要求编辑了它:),经过完全测试的方式,它也在子文件夹中搜索:
@echo off
::only to tell user what this bat are doing
echo.1.initializing...
::enable that thing to allow, for example, incremental counter in a for loop :)
echo.- EnableDelayedExpansion
SETLOCAL EnableDelayedExpansion
::variables
echo.- variables
:: - place here the absolute root path of your files
set path="put here absolute path where are the root folder of your files"
set pathbak=%cd%
set numfirstchars2replace1=0
set numfirstchars2replace2=1
set numfirstchars2replace3=1
set str2put1=a
set str2put2=bb
set str2put3=b.
::go to %path% and its driveletter
echo.- entering the path you want
for /f "delims=" %%i in ('echo.%path%') do %%~di
cd %path%
::search all subfolders and save them to a temp file
echo.- searching for subfolders
echo.%path%>%temp%\tmpvar.txt
for /f "delims=" %%i in ('dir /s /b /on /ad') do echo."%%i">>%temp%\tmpvar.txt
::execute command for root folder and all found subfolders
echo.
echo.2.executing...
echo.- step 1
for /f "delims=" %%i in (%temp%\tmpvar.txt) do (
cd %%i
echo.- in folder: %%i
for /f "delims=" %%j in ('dir /b /on /a-d *.mp3') do (
set newname=%%j
set newname=!newname:~%numfirstchars2replace1%,1000!
echo.- renaming from "%%j" to "%str2put1%!newname!"...
ren "%%j" "%str2put1%!newname!"
)
)
echo.- step 2
for /f "delims=" %%i in (%temp%\tmpvar.txt) do (
cd %%i
echo.- in folder: %%i
for /f "delims=" %%j in ('dir /b /on /a-d *.mp3') do (
set newname=%%j
set newname=!newname:~%numfirstchars2replace2%,1000!
echo.- renaming from "%%j" to "%str2put2%!newname!"...
ren "%%j" "%str2put2%!newname!"
)
)
echo.- step 3
for /f "delims=" %%i in (%temp%\tmpvar.txt) do (
cd %%i
echo.- in folder: %%i
for /f "delims=" %%j in ('dir /b /on /a-d *.mp3') do (
set newname=%%j
set newname=!newname:~%numfirstchars2replace3%,1000!
echo.- renaming from "%%j" to "%str2put3%!newname!"...
ren "%%j" "%str2put3%!newname!"
)
)
echo.
echo.3.exiting...
::return to %pathbak% and its driveletter
for /f "delims=" %%i in ('echo.%pathbak%') do %%~di
cd %pathbak%
@echo on
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1539 次 |
最近记录: |