bat001-批处理更改文件名-批量更改文件名(替换文件名中的空格)

@echo off
mode con cols=50 lines=20
color 0a
setlocal enabledelayedexpansion
echo --------------------------------------------
echo 【批量更改当前目录中所有文件的文件名】-
echo 【不包括子文件夹】-
echo --------------------------------------------
echo 【请确认是否锁定文件类型】
echo 【0-锁定(默认)/1-不锁定】
echo 【建议锁定,这样批量改名不会影响文件类型(后缀)】
echo 【如果要替换文件后缀名:】
echo       【例如:将.jgp替换成.bmp】
echo       【请输入1】
echo 【回车确认】
set str_type=0
set /P str_type=【默认0】:
set /P str1=输入被替换字符【非空字符】【回车】:
set /P str2=输入新字符【空字符直接回车】:
set /P str_start=输入前缀字符【空字符直接回车】:
set /P str_end=输入后缀字符【空字符直接回车】:
echo str_type=%str_type%
if %str_type%==0 (
    for /f "tokens=*" %%i in ('dir/b') do (
        if not "%%i"=="%~nx0" (
            set fn=%%~ni
            set fn=!fn:%str1%=%str2%!
            set fn=%str_start%!fn!%str_end%%%~xi
            ren "%%i" !fn!
            echo !fn!
        )
    )
) else (
if %str_type%==1 (
    for /f "tokens=*" %%i in ('dir/b') do (
        if not "%%i"=="%~nx0" (
            set fn=%%i
            set fn=!fn:%str1%=%str2%!
            set fn=%str_start%!fn!%str_end%
            ren "%%i" !fn!
            echo !fn!
        )
    )
)
)
pause
:--------------------------------------
set str1=9734
set str2=9077
set str3=0
set str4=%str1%%str2%%str3%@
:--------------------------------------
echo %str4%com
pause

你可能感兴趣的:(04软件,batch,批处理,批量更改文件名)