标题: [文件操作] BAT脚本如何批量修改文件名和文件夹名? [打印本页]
作者: 304802301 时间: 2021-8-29 15:43 标题: BAT脚本如何批量修改文件名和文件夹名?
实际情况:
1、有1000000个文件夹,文件夹名字无任何规律(比如某个文件夹名字叫ASDFGH)。
2、每个文件夹里面只有1个文件,文件名字也无规律,每个文件都是tf格式(比如文件名字叫330110.tf)。
3、tf文件可以用txt方式打开,有个Code字段,都会有Code="a1b1c1"。每个tf格式的文件里的Code字段的值,可能一样,可能不一样(图3)。
需求:
1、每个tf格式的文件里的Code字段的值,添加到他的文件名字上,和他的文件夹名字上。
2、按上面的例子,批处理后,330110.tf这个文件名字修改为330110(a1b1c1).tf,他的父文件夹名字原来为ASDFGH修改为ASDFGH(a1b1c1)
求个bat语句。。谢谢各位大佬了。。另外附件传不上来,放在网盘上了https://cowtransfer.com/s/2bc410d2e23144
作者: newswan 时间: 2021-8-29 15:57
发文件样本
作者: 304802301 时间: 2021-8-29 16:11
本帖最后由 304802301 于 2021-8-29 16:34 编辑
回复 2# newswan
https://cowtransfer.com/s/2bc410d2e23144附件传不上来,只能上传到这个网盘,麻烦您看看
补充:
实际情况:
1、有1000000个文件夹,文件夹名字无任何规律(比如某个文件夹名字叫ASDFGH)。
2、每个文件夹里面只有1个文件,文件名字也无规律,每个文件都是tf格式(比如文件名字叫330110.tf)。
3、tf文件可以用txt方式打开,有个Code字段,都会有Code="a1b1c1"。每个tf格式的文件里的Code字段的值,可能一样,可能不一样(图3)。
需求:
1、每个tf格式的文件里的Code字段的值,添加到他的文件名字上,和他的文件夹名字上。
2、按上面的例子,批处理后,330110.tf这个文件名字修改为330110(a1b1c1).tf,他的父文件夹名字原来为ASDFGH修改为ASDFGH(a1b1c1)
求个bat语句。。谢谢各位大佬了。。。
作者: newswan 时间: 2021-8-29 17:03
本帖最后由 newswan 于 2021-8-29 17:06 编辑
- @echo off
- setlocal ENABLEDELAYEDEXPANSION
-
-
- set _sour_=新建文件夹
-
- pushd %_sour_%
- for /f "usebackq delims=" %%a in (`dir /b /ad`) do (
- set _code_=
- echo - %%a
- pushd %%a
- for /f "usebackq delims=" %%b in (`dir /b *.tf`) do (
- echo -- %%b
- for /f "usebackq skip=1 tokens=4,5 delims== " %%c in ("%%b") do (
- if "%%c" == "Code" set _code_=%%~d
- )
- ren "%%b" "%%~nb-!_code_!%%~xb"
- )
- popd
- ren "%%~a" "%%a-!_code_!"
- )
- popd
复制代码
作者: newswan 时间: 2021-8-29 17:10
不喜欢 在文件名中使用 () 英文的容易引发问题,中文的占空间
作者: 304802301 时间: 2021-8-29 17:29
回复 5# newswan
感谢,试了下可以的,有空了去正式环境尝试下,有问题再联系您,最后再次感谢!!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |