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

[文件操作] [已解决]如何将某个路径下的所有子文件夹中的文件进行重命名,对文件名中的数字补位

[复制链接]
发表于 2017-4-3 17:16:39 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /s /a-d *.html') do (
  4.     set "f=100%%~ni"
  5.     set "f=!f:~-3!.txt"
  6.     ren "%%i" "!f!"
  7. )
复制代码
 楼主| 发表于 2017-4-3 19:28:07 | 显示全部楼层
本帖最后由 xinjinjie 于 2017-4-3 19:34 编辑

回复 16# ShowCode


    感谢指点,不过这个代码是删除文件用的还是改名用的?delims 看着像删除命令?
setlocal enabledelayedexpansion 查了一下,是 变量延迟,在这个代码里用它是为了什么效果呢?
另外,对子文件夹进行遍历的代码是哪段呢?如果要用你这个代码来实现,遍历所有子文件夹,删除某个指定文件名或者后缀名的文件,应该怎么修改这个代码呢?
 楼主| 发表于 2017-4-3 20:23:50 | 显示全部楼层
回复 16# ShowCode


    还发现一个新情况,是文件名的新情况,原本以为文件名只是0.jpg 改为 000.jpg,或者0.html 改为 000.txt,但是有的子文件夹里的文件名还含有非数字的字符,比如book.0.html 需要改为000.txt,book.1.html 需要改为001.txt。个人感觉直接用16L的代码应该不行,虽然那个代码还没完全看懂,但是能大概猜测出"delims=" %%i in ('dir /b /s /a-d *.html')应该是在将文件名的前缀部分用循环的方式进行确认,如果遇到新情况的文件名book.0.html,应该无法获取到吧?对应新情况的文件名book.0.html 这种应该怎么调整16L的代码来达到效果呢?
发表于 2017-4-4 22:09:09 | 显示全部楼层
回复 17# xinjinjie


    dir 命令的 /s 参数可以遍历子文件夹
发表于 2017-4-4 22:11:36 | 显示全部楼层
回复 17# xinjinjie


删除文件非常简单只需要一个 del 命令,它自己的 /s 参数可以遍历子目录。
  1. del /f /q /s *.txt
复制代码
发表于 2017-4-4 22:18:09 | 显示全部楼层
回复 18# xinjinjie


@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /s /a-d *.html') do (
    set "f=100%%~ni"
    set "f=!f:book.=!"
    set "f=!f:~-3!.txt"
    ren "%%i" "!f!"
)

评分

参与人数 1技术 +1 收起 理由
xinjinjie + 1 非常高效,感谢再三的耐心指点。期待再讲解 ...

查看全部评分

 楼主| 发表于 2017-4-5 08:57:17 | 显示全部楼层
回复 21# ShowCode


    非常感谢指点,我对比了一下16L的代码,只多了一行set "f=!f:book.=!",这个应该是在判断文件名里包含了“book.”这个关键字符内容吧?

还想请教一下3句set语句分别起的作用,还请指点一下。
发表于 2017-4-5 20:45:03 | 显示全部楼层
回复 22# xinjinjie


@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /s /a-d *.html') do (
    set "f=100%%~ni"
    echo !f!
    set "f=!f:book.=!"
    echo !f!
    set "f=!f:~-3!.txt"
    echo !f!
    ren "%%i" "!f!"
)

这样观察一下应该能明白吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 14:49 , Processed in 0.019696 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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