求把 中文.txt1 中文.txt2 中文.txt3 ... 这样的文件用批处理改为 中文1.txt 中文2.txt 中文3.txt...

发布网友 发布时间:2022-04-23 01:15

我来回答

3个回答

热心网友 时间:2023-10-09 21:35

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d /b 中文.txt*') do (
set "n=%%~xa"
set "n=!n:~4!"
if not "!n!"=="" ren "%%a" "%%~na!n!.txt"
)

将此批处理放在和“中文.txt1"同一文件夹中运行,扩展名是包括前面的点的,刚才没考虑到

追问您好,文件夹中不只有 中文.txt1 这种
还有 英文.txt1
法文.txt1等等,能不能用一个批处理都处理呢?

追答@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d /b *.txt*^|findstr /i /E "\.txt[^.][^.]*"') do (
set "n=%%~xa"
set "n=!n:~4!"
if not "!n!"=="" ren "%%a" "%%~na!n!.txt"
)

已经修改成对所有名字的txt??类型文件处理

对当前文件夹中所有扩展名类似txt1的文件,将txt后面部分移到主文件名的后面

热心网友 时间:2023-10-09 21:36

@for /l %%i in (1,1,20) do @ren 中文.txt%%i 中文%%i.txt

20根据你最大的文件序号修改。

热心网友 时间:2023-10-09 21:36

一行就行了
for /f "tokens=* delims=" %%i in ('dir *.txt /s /b') do (ren "%%i" "%%~ni.txt")

追问您好,只改了第一个文件啊,后面的都没有变化

追答你文件有重名,加一句就行了
setlocal EnableDelayedExpansion&for /f "tokens=* delims=" %%i in ('dir *.txt /s /b') do (set /a m+=1&ren "%%i" "%%~ni!m!.txt")

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com