找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20763|回复: 9

[文本处理] 求助批处理遍历文件夹下所有子文件,并执行命令

[复制链接]
发表于 2023-6-28 09:13:34 | 显示全部楼层 |阅读模式
遍历此文件夹下所有子文件目录下的pdf文件,并将文件改名,这个文件夹下边有六个子文件夹,每个子文件夹下面都有pdf,然后执行改名命令,一共很多命令都要执行一次,如:ren *F00010001#01不动产权籍调查表.pdf *F99990001#01不动产权籍调查表.pdf
ren *F00010001#02个人身份证.pdf *F99990001#02个人身份证.pdf,这个是档案资料整理的,因为每个文件夹下的文件都不一样,所以想做一个遍历所有文件夹下边的文件,然后再执行一个操作的命令,
发表于 2023-6-28 09:30:55 | 显示全部楼层
回复 1# 824297579


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /ad') do (
  4.     echo 正在处理子文件夹 %%i
  5.     pushd "%%i"
  6.     REM 把你的 ren 命令放在下面
  7.    
  8.     popd
  9. )
复制代码
 楼主| 发表于 2023-6-28 09:59:46 | 显示全部楼层
回复 2# Batcher


    感谢,但是你这个是在本文件夹的下级文件夹执行,我用一级目录下可以改名,但是这个要求是在二级文件夹下的操作,如:新建文件夹\431024009010JC05673F99990001#欧振保  在这个路径下没问题,但是这个路径下还有文件夹,如:新建文件夹\431024009010JC05673F99990001#欧振保\01不动产权籍调查表、新建文件夹\431024009010JC05673F99990001#欧振保\02身份证明材料,是这个样子的,如何在文件夹下,所有子目录下的文件夹进行操作
发表于 2023-6-28 10:11:16 | 显示全部楼层
回复 3# 824297579
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /s /ad') do (
  4.     echo 正在处理子文件夹 %%i
  5.     pushd "%%i"
  6.     if exist "*.pdf" (
  7.         REM 把你的 ren 命令放在下面
  8.         
  9.     )
  10.     popd
  11. )
复制代码
 楼主| 发表于 2023-6-28 10:22:00 | 显示全部楼层
回复 4# Batcher


    谢谢,完美解决了,但是有个疑问,这个得用if去判断,可不可以在cd这块直接进入子文件夹呢?
发表于 2023-6-28 10:26:28 | 显示全部楼层
回复 5# 824297579


    请亲自测试一下吧,遇到问题咱们再继续讨论。
 楼主| 发表于 2023-6-28 11:12:23 | 显示全部楼层
回复 6# Batcher


    如果是在所有不同名称下新建文件夹,还需要怎么更改,如:一级文件夹\二级文件夹\三级文件夹,第一级是每户的编码,第二级是每户材料分类,然后建立第三级文件夹,因为每户的编码不同,如何在每个文件夹名称不同,二级文件夹名不同或者相同,的情况下建立三级文件夹呢
发表于 2023-6-28 11:19:56 | 显示全部楼层
回复 7# 824297579


你给例子:
新建文件夹\431024009010JC05673F99990001#欧振保\01不动产权籍调查表
哪个是一级?哪个是二级?
bat脚本放在哪个文件夹下执行?
 楼主| 发表于 2023-6-28 11:27:00 | 显示全部楼层
回复 8# Batcher


    脚本在新建文件夹里边,新建的文件夹在”01不动产权籍调查表“里边,要对几百户的这个文件夹里边创建多个文件夹
发表于 2023-6-28 11:43:07 | 显示全部楼层
回复 9# 824297579
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /ad') do (
  4.     echo 一级子文件夹 %%i
  5.     pushd "%%i"
  6.     for /f "delims=" %%j in ('dir /b /ad') do (
  7.         echo     二级子文件夹 %%j
  8.         REM 新建三级子文件夹的命令放在下面
  9.         md "%%j\三级子文件夹"
  10.     )
  11.     popd
  12. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 19:36 , Processed in 0.019616 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表