标题: [文件操作] [已解决]批处理如何替换/修改以指定字符分割的文件名中的指定字段 [打印本页]
作者: playinthesky 时间: 2015-5-30 17:34 标题: [已解决]批处理如何替换/修改以指定字符分割的文件名中的指定字段
本帖最后由 pcl_test 于 2016-8-9 20:53 编辑
批处理如何文件名替换指定字段?望高手带我走上正途!
文件格式 2013-SA2-k30-0001-0001.jpg
年份,字母都会变,后面的3,4也会改变,就是需要把中间的K90修改成其他字符串。
例如:
2013-SA1-k30-0001-0009.jpg
2012-SA1-k30-0002-0011.jpg
.
.
.
2005-SA7-k30-9941-0007.jpg
目标:
2013-SA1-Y-0001-0009.jpg
2012-SA1-Y-0002-0011.jpg
.
.
.
2005-SA7-Y-9941-0007.jpg
我写的是:- @echo off
- for %%i in (*.jpg) do (
- for /f "tokens=3 delims=-." %%z in ("%%i") do (
- set fn="%%z"
- set fn=Y
- echo %%a-%%b-!fn!-%%c-%%d.jpg
- )
- )
- pause
复制代码
意思就是第3行不管出现什么都改成我所指定的字符,错在哪里了?
作者: bailong360 时间: 2015-5-30 17:51
- @echo off
- set fn=Y
- for %%i in (*.jpg) do (
- for /f "tokens=1-5 delims=-" %%a in ("%%~ni") do (
- echo %%a-%%b-%fn%-%%d-%%e.jpg
- )
- )
- pause
复制代码
作者: playinthesky 时间: 2015-5-30 18:06
回复 2# bailong360
但是对改名是失效的,- @echo off
- set fn=K30
- for %%i in (*.jpg) do (
- for /f "tokens=1-5 delims=-" %%a in ("%%~ni") do (
- ren %%a-%%b-%%c-%%d-%%e.jpg %%a-%%b-%fn%-%%d-%%e.jpg
- )
- )
- pause
复制代码
作者: bailong360 时间: 2015-5-30 18:15
@echo off
set fn=K30
set fn=Y
for %%i in (*.jpg) do (
for /f "tokens=1-5 delims=-" %%a in ("%%~ni") do (
ren %%a-%%b-%%c-%%d-%%e.jpg %%a-%%b-%fn%-%%d-%%e.jpg
)
)
pause
作者: playinthesky 时间: 2015-5-30 18:28
回复 4# bailong360
K30只是举个例子,万一是K50,我也得改成Y,谢谢你,我再想想。
作者: playinthesky 时间: 2015-5-30 18:28
回复 4# bailong360
这个可以用的,谢谢。
作者: bailong360 时间: 2015-5-30 18:30
回复 5# playinthesky
我的意思是,K30那一行完全是多余的,可以去掉
K30所在列的取值与程序无关
作者: playinthesky 时间: 2015-5-30 18:34
回复 7# bailong360
对的,我刚刚尝试,是的,但是我看他们在写的时候,好像都是要赋值两次的么,看来对于具体数字而言是不用的。
作者: playinthesky 时间: 2015-5-30 18:35
回复 7# bailong360
谢谢你,很感激。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |