Board logo

标题: [系统相关] 批处理删除文件名中----和.之间的内容。 [打印本页]

作者: fwy12    时间: 2022-2-15 21:38     标题: 批处理删除文件名中----和.之间的内容。

我有多个文件如:
03G102_pdf----03G102-钢结构设计制图深度和表示方式.pdf
03J930_1_pdf----03J930-1图集.pdf
03J9301_pdf----03J930-1住宅建筑构造图集.pdf

请问下如何能批量重命名为:
03G102_pdf.pdf
03J930_1_pdf.pdf
03J9301_pdf.pdf

就是删除----和. 之间的内容。就是----和.之间也可能会出现1个-
请问下批处理能是实现么?
作者: Fit    时间: 2022-2-15 22:26

@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b /a-d') do (
    set "str=%%~ni"
    set str=!str:pdf=pdf !
    call:st !str!
    echo ren "%%i" "!sttr!%%~xi"
)
pause&exit
:st
set "s=%1"
set sttr=
for /l %%i in (0,1,50) do (
    if "!s:~%%i,1!"==" " goto:eof
    set sttr=!sttr!!s:~%%i,1!
)
作者: AMAKER    时间: 2022-2-15 22:27

  1. @echo off
  2. for %%i in (*.pdf) do for /f "tokens=1 delims=----" %%j in ("%%i") do ren "%%i" "%%j.pdf"
复制代码

作者: Fit    时间: 2022-2-15 22:28

如果显示正确,再将echo ren "%%i" "!sttr!%%~xi"前的echo去掉,就可以
作者: qixiaobin0715    时间: 2022-2-16 08:39

  1. @echo off
  2. for /f "tokens=1* delims=-" %%a in ('dir /b /a-d *.pdf') do ren "%%a----%%b" "%%a.pdf"
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2