标题: [文件操作] BAT脚本怎样批量修改文件夹内及其目录下所有文件的文件名? [打印本页]
作者: Emy 时间: 2023-12-28 11:25 标题: BAT脚本怎样批量修改文件夹内及其目录下所有文件的文件名?
rt,新手求助
目前想按照关键字批量修改文件名,搜索之后写了如下代码,但是执行后没有反应,求助各位帮忙看看- @echo off
- set "str1=26"
- set "str2=28"
- Setlocal Enabledelayedexpansion
- for /r "D:\A-相关无用文件备份\20231226\- 模板备份1228" %%j in (*) do (
- for /f "delims=" %%i in ('dir /b *.*') do (
- set "var=%%i" & ren "%%i" "!var:%str1%=%str2%! "))
- pause
复制代码
作者: Five66 时间: 2023-12-28 12:41
这样行不?- @echo off
- set "str1=26"
- set "str2=28"
- Setlocal Enabledelayedexpansion
- for /f "eol=/ delims=" %%i in ('dir /b "D:\A-相关无用文件备份\20231226\- 模板备份1228\*.*"') do (
- set "var=%%i" && ren "%%~fi" "%%dpi!var:%str1%=%str2%!")
- pause
复制代码
作者: qixiaobin0715 时间: 2023-12-28 14:19
本帖最后由 qixiaobin0715 于 2023-12-28 14:45 编辑
下面代码保存为ANSI编码运行:- @echo off
- set "str1=26"
- set "str2=28"
- cd /d "D:\A-相关无用文件备份\20231226\- 模板备份1228"
- Setlocal Enabledelayedexpansion
- for /f "delims=" %%i in ('dir /s /b /a-d "*%str1%*"') do (
- set "var=%%~nxi"
- ren "%%i" "!var:%str1%=%str2%!"
- )
复制代码
作者: _avatar_ 时间: 2023-12-28 17:44
回复 1# Emy
你声明的变量是 j ,用的却是 i,这才是没有反应的最主要原因吧。
其实如果你要修改指定文件夹下的指定文件,就假定是当前目录就好了,这样你就不需要 /R 参数了。
如果单纯只是想要修改指定规则的文件,我觉得你应该要知道怎么正确匹配到你想要修改的文件。
比如你要修改所有记事本文件,小括号里就写 *.txt 。
要修改所有2023开头的图片,小括号里就写 2023*.jpg
作者: Emy 时间: 2024-1-10 10:03
回复 3# qixiaobin0715
感谢解答!这个我试了下可以实现指定文件夹下所有文件的文件名关键词修改,但是不会修改文件夹下文件夹的名称,极大程度上解决了我的问题!我再研究下怎么修改文件夹名称。
作者: Emy 时间: 2024-1-10 10:18
回复 2# Five66
感谢回复! 这个我试了下可实现指定文件夹下的文件及文件夹名修改,但无法遍历文件夹,以及所有的文件夹和文件前会增加一个%dpi,删除dpi之后,所有的文件夹和文件前会增加一个%,后续怎么修改我再看看。
作者: Emy 时间: 2024-1-10 10:20
回复 4# _avatar_
我试了下统一变量为i,也没成功ORZ。另外我是想要遍历指定文件夹下的所有文件和文件夹,不指定格式地修改名称,所以用了r,想实现for的嵌套,但是出现了问题,没有效果。
作者: qixiaobin0715 时间: 2024-1-10 10:22
本帖最后由 qixiaobin0715 于 2024-1-10 10:25 编辑
文件夹也要修改?- @echo off
- set "str1=26"
- set "str2=28"
- cd /d "D:\A-相关无用文件备份\20231226\- 模板备份1228"
- Setlocal Enabledelayedexpansion
- for /f "delims=" %%i in ('dir /s /b "*%str1%*"^|sort /r') do (
- set "var=%%~nxi"
- ren "%%i" "!var:%str1%=%str2%!"
- )
复制代码
作者: Emy 时间: 2024-1-10 11:20
回复 8# qixiaobin0715
成功了!感谢解答!!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |