发布网友 发布时间: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"同一文件夹中运行,扩展名是包括前面的点的,刚才没考虑到
追答@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")