标题: [代码合集] 求BAT脚本批量修改文件名 [打印本页]
作者: 彭生 时间: 2023-2-1 09:56 标题: 求BAT脚本批量修改文件名
l批量修改文件名,(同文件夹中这样文件很多)。
要求:1.文件名前批量加"DKSYT" ; 2.批量删除“_刘堂怀_附证附图” ; 3.批量修改扩展名小写变大写;4. 批量在扩展名前加“J”
421182103206000130_刘堂怀_附证附图.pdf
421182103206000175_刘辉沼_附证附图.pdf
421182103206000270_刘镜清_附证附图.pdf
421182103206000271_刘辉福_附证附图.pdf
421182103206000386_刘乾堂_附证附图.pdf
421182103206000399_刘堂全_附证附图.pdf
将上面文件名修改成
DKSYT421182103206000130J.PDF
DKSYT421182103206000175J.PDF
DKSYT421182103206000270J.PDF
DKSYT421182103206000271J.PDF
DKSYT421182103206000386J.PDF
DKSYT421182103206000399J.PDF
作者: 彭生 时间: 2023-2-1 10:47
@echo off
Setlocal Enabledelayedexpansion
set "str1=421182"
set "str2=DKSYT421182"
//将文件名前添加DKSYT字符
for /f "delims=" %%i in ('dir /b *.*') do (
set "var=%%i" & ren "%%i" "!var:%str1%=%str2%!")
@echo off
setlocal enabledelayedexpansion
set n= 23
//保留文件名前23个字符
for /f "delims=" %%a in ('dir /a-d /b *.*') do (
set "name=%%~na"
ren "%%~a" "!name:~0,%n%!%%~xa"
)
ren *.pdf *.PDF
//将扩展名pdf更改为PDF
作者: 彭生 时间: 2023-2-1 10:48
求大佬帮我完善一下代码。还有一个+“J”的要求没有完成。
作者: hfxiang 时间: 2023-2-1 11:12
- @echo off
- setlocal EnableDelayedExpansion
- cd /d "%~dp0"
- for /f "tokens=*" %%a in ('dir *.pdf /b/s/a-d') do (
- set "name=%%~na"
- set name=!name:~0,18!
- move /y "%%~fa" "%%~dpaDKSYT!name!J.PDF"
- )
- endlocal
复制代码
作者: qixiaobin0715 时间: 2023-2-1 11:28
像这种文件名由固定分隔符隔开的文件,重命名时,不必去计算字符数,这样很简单:- @echo off
- for /f "tokens=1* delims=_" %%a in ('dir /b /a-d *.pdf') do (
- ren "%%a_%%b" "DKSYT%%aJ.PDF"
- )
- pause
复制代码
作者: 彭生 时间: 2023-2-1 14:32
回复 5# qixiaobin0715
谢谢老师的指点。
作者: 彭生 时间: 2023-2-1 14:33
回复 4# hfxiang
谢谢老师的指点!
作者: 彭生 时间: 2023-2-1 14:44
回复 5# qixiaobin0715
最优答案!
作者: 彭生 时间: 2023-2-1 15:00
回复 4# hfxiang
老师你的代码很好!首先谢谢你的辛勤付出,代码执行一次能达到我想要的结果,但不足之处是,如果不注意执行了第2次,文件名又在修改,并删除了部份文件,造成数据丢失。
作者: 77七 时间: 2023-2-1 16:00
- @echo off
- for /f "delims=" %%i in ('dir /b /s /a-d *_*_*.pdf') do (
- for /f "tokens=1 delims=_" %%a in ("%%~nxi") do (
- ren "%%i" "DKSYT%%aJ.PDF"
- )
- )
- pause
复制代码
如果要同时处理目录下子文件夹中的文件,又要防止误点,可以这样
作者: 彭生 时间: 2023-2-1 16:14
回复 10# 77七
谢谢老师指点。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |