标题: [文件操作] 批处理文件批量改名操作 [打印本页]
作者: swanseabrian 时间: 2021-9-20 17:58 标题: 批处理文件批量改名操作
- @echo off
- set ccd=%cd%
- for /r /d %%i in (详细信息) do (
- if exist %%i (
- for %%j in (%%i\*.*) do ren "%%j" "introduce.txt")
- )
-
- pause
复制代码
上面是代码,把所有 详细信息文件夹里的txt改成introduce.txt,
详细信息文件夹里只有一个txt,可是我用上面代码改完以后,出来的文件名字是
introduce (1).txt
为啥会有个编号出来,这是啥情况 ,谢谢
作者: Fit 时间: 2021-9-20 18:04
/r /d 是将文件夹包括子文件夹都遍历
第二个for是将详细信息文件夹里所有文件包括子文件进行重命名
作者: Fit 时间: 2021-9-20 18:04
去掉/r试试
作者: qixiaobin0715 时间: 2021-9-20 18:18
回复 1# swanseabrian - for /f "delims=" %%a in ('dir /b /s /a-d^|findstr /r "详细信息\\[^\\]*.txt$"') do ren "%%a" "introduce.txt"
复制代码
作者: swanseabrian 时间: 2021-9-20 18:26
回复 4# qixiaobin0715
你这个好用啊,啥原因这是
作者: swanseabrian 时间: 2021-9-20 18:26
回复 3# Fit
楼下的好用
作者: qixiaobin0715 时间: 2021-9-20 18:38
本帖最后由 qixiaobin0715 于 2021-9-20 18:59 编辑
回复 5# swanseabrian
这与批处理预处理机制有关,三两句话说不清楚(实际上我也拿不准 )。for+dir可以避免重命名时出现类似问题。
作者: swanseabrian 时间: 2021-9-20 20:54
回复 7# qixiaobin0715
\\[^\\]
这四个杠啥意思
我把[^\\]去掉就搜索不到了
作者: Batcher 时间: 2021-9-20 23:04
回复 5# swanseabrian
如果没有极其特殊的需求,可以考虑忘掉 /r 和 /d
全部使用 for /f + dir 即可
作者: swanseabrian 时间: 2021-9-21 10:49
回复 9# Batcher
好的, 这句啥意思呀 \\[^\\]
这四个杠啥意思
我把[^\\]去掉就搜索不到了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |