[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 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

回复 5# newswan


    感谢,试了下可以的,有空了去正式环境尝试下,有问题再联系您,最后再次感谢!!!

TOP

不喜欢 在文件名中使用 () 英文的容易引发问题,中文的占空间

TOP

本帖最后由 newswan 于 2021-8-29 17:06 编辑
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set _sour_=新建文件夹
  4. pushd %_sour_%
  5. for /f "usebackq delims=" %%a in (`dir /b /ad`) do (
  6.     set _code_=
  7.     echo - %%a
  8.     pushd %%a
  9.     for /f "usebackq delims=" %%b in (`dir /b *.tf`) do (
  10.         echo -- %%b
  11.         for /f "usebackq skip=1 tokens=4,5 delims== " %%c in ("%%b") do (
  12.             if "%%c" == "Code" set _code_=%%~d
  13.         )
  14.         ren "%%b" "%%~nb-!_code_!%%~xb"
  15.     )
  16.     popd
  17.     ren "%%~a" "%%a-!_code_!"
  18. )
  19. popd
复制代码

TOP

本帖最后由 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语句。。谢谢各位大佬了。。。

TOP

发文件样本

TOP

返回列表