求一个专用的重命名批处理

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:22:42
我需要把批处理方在一个ABC的文件夹中,然后可以随便命名任何后缀名的文件,并且我只要1~多少多少就可以了,比如1.txt 2.txt 3.txt 1.jpg 2.jpg
@echo off & setlocal EnableDelayedExpansion
title 文件批量重命名整理
mode con cols=50 lines=25 & color 9b
echo 此批处理脚本用于将此路径下的所有同类文件批量重命名
set /p start=开始整理文件请输入[Y]:
set /p bak=请输入要整理的文件名后缀[如jpg]:
set /p name=请输入更改后的文件名称:
if "!start!"=="y" (
md newFILES
for /f "delims= tokens=1" %%i in ('dir /b /s ^| find ".!bak!"') do (
set /a num+=1
copy "%%~dpxni" .\newFILES\!name!!num!.!bak! >nul
cls
echo.已经复制文件:
echo !num!个
echo 此文件[%%~xni]已经改名为 [!name!!num!.!bak!]
echo %%~xni --^> !name!!num!.!bak! >>"Files Renamed List.txt"
)
) else goto :eof
echo 完成整理!
PAUSE>nul

上面这个批处理还要创建文件夹的,不方便,我要的是不需要复制出来,就直接在原文件上更名.可以写出来的给10分

我之前的那个答案由于时间关系还修改得不够好。现在再看看下面这个最新修改的。更具人性化。
@echo off & setlocal EnableDelayedExpansion
title 文件批量重命名整理
mode con cols=60 lines=10 & color 9b&set list=%random%
echo.&echo.
echo 此批处理脚本用于将此路径下的所有同类文件批量重命名
echo.
set /p start=开始整理文件请输入[Y]:
if not "%start%"=="y" if not "%start%"=="Y" exit
echo.
set /p bak=请输入要整理的文件名后缀[如jpg]:
echo.
set /p name=请输入更改后的文件名称(直接回车则按从01开始的有序数字命名):
for /f "delims=" %%i in ('dir /b *.!bak!') do (
set /a num+=1
if not "%%~nxi"=="%~nx0" (
if !num! LSS 10 (ren "%%~nxi" !name!0!num!.!bak!&echo %%~xni 已重命名为: !name!0!num!.!bak! >>%temp%\%list%) else ren "%%~nxi" !name!!num!.!bak!&echo %%~xni 已重命名为: !name!!num!.!bak! >>%temp%\%list%
)else set /a num-=1
)
set /a no=!num!+2
mode con cols=60 lines=!no!&color 5a
echo !num!个文件已经完成重命名,分别为:
type %temp%&