标题: [文本处理] [已解决] 批处理怎样批量修改文件名? [打印本页]
作者: guaiwu 时间: 2011-8-27 11:04 标题: [已解决] 批处理怎样批量修改文件名?
本帖最后由 guaiwu 于 2011-8-30 15:03 编辑
- @echo off
- set /a ge=0
- set /a shi=0
- set /a bai=0
- for /f "delims=" %%i in ('dir *.pdf /o:n /b') do (
- setlocal enabledelayedexpansion
- set /a ge+=1
- if not !ge! equ 10 (if !shi! equ 10 (set /a bai+=1,shi=0
- ) else (
- rename "%%i" !bai!!shi!!ge!.pdf
- )
- ) else (
- set /a shi+=1,ge=0
- rename "%%i" !bai!!shi!!ge!.pdf
- )
- )
复制代码
批量修改文件名 001、002、003
作者: guaiwu 时间: 2011-8-27 11:05
看到的帮忙看看能不能修改简洁点的
作者: cjiabing 时间: 2011-8-27 11:21
不懂得有什么用,我的文件都没有001、002、003这种名字的。再说,也搞不懂你三个set做什么的。
set /a ge=0
set /a shi=0
set /a bai=0
最后,最好说明你这个代码用来做什么,要怎么用,用什么限制……
作者: 601997526 时间: 2011-8-27 12:24
需要这么麻烦吗- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir *.pdf /o:n /b') do (
- set /a ge+=1
- if !ge! lss 100 (set shi=0!ge!)
- if !ge! lss 10 (set shi=0!shi!)
- ren "%%i" !shi!.pdf
- )
复制代码
作者: guaiwu 时间: 2011-8-27 13:10
回复 3# cjiabing
set /a ge=0
set /a shi=0
set /a bai=0
的作用是为了不让ge、shi、bai不会是空的
是nul的话!bai!!shi!!ge!中 bai、shi就输不出了。
我要达到的目的是ge=1,!bai!!shi!!ge!=001
作者: guaiwu 时间: 2011-8-27 13:14
回复 5# guaiwu
这段代码主要是想要批量修改指定文件的文件用来重命名排序。
作者: zaixinxiangnian 时间: 2011-8-27 13:45
回复 4# 601997526
我试了之后把名子全改了,怎么样再把前缀给去掉啊 想了好久也没有写成功
比如文件名前缀全部为 (001 002 003)或着是前缀都为000 这样的文件名,怎么样再去掉啊
作者: guaiwu 时间: 2011-8-27 15:22
回复 7# zaixinxiangnian
没理解你的意思,前缀是那个。 说得详细点。
作者: zaixinxiangnian 时间: 2011-8-27 16:57
回复 8# guaiwu
一个批量更改文件名的批 运行后全部改为 (0011霜.txt 002.txt 003.txt 文件名前面有相同的字符串) (或者是001 002 003 004 005 文件名前面有顺序的前缀)
作者: CrLf 时间: 2011-8-30 15:13
回复 7# zaixinxiangnian
方法很多,举两个例子:- for /f "tokens=* delims=0" %%a in ("0001230456") do echo %%a
复制代码
- set filename=00123
- set /a n=1%filename%%%100000
- echo %n%
复制代码
作者: guaiwu 时间: 2011-8-30 15:23
回复 10# CrLf
诸位都理解错我的意思了,我想要的是保留0的存在,生成001、002、003这样的文件名
仔细看我发的命令的最后结果
作者: CrLf 时间: 2011-8-30 15:30
回复 11# guaiwu
那回复的是 7 楼问题,我以为楼主的问题已经解决了...
所有类型的文件都使用同一数列改名:- @echo off&setlocal enabledelayedexpansion
- for %%a in (*.*) do (
- set /a n+=1001
- ren "%%a" "!n:~-3!.%%~xa"
- )
复制代码
按各自的后缀名依次改名:- @echo off&setlocal enabledelayedexpansion
- for %%a in (*.*) do (
- set /a "%%~xa+=1001"
- ren "%%a" "!%%~xa:~-3!%%~xa"
- )
复制代码
作者: guaiwu 时间: 2011-8-30 15:42
回复 12# CrLf
谢谢了、 我是个菜鸟 那个段命令也是我搅尽脑经想出来的
现在我知道了还有这么多的用法。 学习了
谢谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |