标题: [文件操作] 批处理怎样修改文件名(含数字运算)? [打印本页]
作者: fengyun2008202 时间: 2011-2-25 15:01 标题: 批处理怎样修改文件名(含数字运算)?
原来文件名为这样 3_4_3.jpg 3_4_4.jpg 3_4_5.jpg想修改成 3_3_2.jpg 3_3_3.jpg 3_3_4.jpg
第一个数字不变,第二个和第三个都减去1
批处理要怎么写?
作者: wc726842270 时间: 2011-2-25 15:20
- @echo off&setlocal enabledelayedexpansion
- for %%a in (*.jpg) do (
- for /f "tokens=1-3 delims=_." %%i in ("%%a") do set /a a=%%i,b=%%j-1,c=%%k-1
- ren %%a !a!_!b!_!c!.*
- )
- pause
复制代码
别点多了啊。次数多了后两个数成为负数也是有可能的
另外在同一目录运行。只要是格式相符的应该都会有反应(不需要改动的,只要文件名中无"_" "."即可)
[ 本帖最后由 wc726842270 于 2011-2-25 15:26 编辑 ]
作者: batman 时间: 2011-2-25 15:23
- @echo off&setlocal enabledelayedexpansion
- for /r %%a in (*.jpg) do (
- for /f "tokens=1-3 delims=_" %%b in ("%%~na") do (
- set /a a=%%c-1,b=%%d-1
- ren "%%a" %%b_ !a!_!b!.jpg
- )
- )
复制代码
作者: fengyun2008202 时间: 2011-2-25 15:29
wc726842270 ,batchman 3q
原来可以这样写~ a=%%c-1
作者: wc726842270 时间: 2011-2-25 15:36
老大就是老大,用的是("%%~na") 。学习了
[ 本帖最后由 wc726842270 于 2011-2-25 16:20 编辑 ]
作者: fengyun2008202 时间: 2011-2-25 15:54
文件多了的时候出现这个问题了。“存在一个重名文件,或是找不到文件”
作者: batman 时间: 2011-2-25 19:06 标题: 回复 6楼 的帖子
- @echo off&setlocal enabledelayedexpansion
- md temp
- for /r %%a in (*.jpg) do (
- for /f "tokens=1-3 delims=_" %%b in ("%%~na") do (
- set /a a=%%c-1,b=%%d-1
- copy /y %%~nxa temp\%%b_!a!_!b!.jpg
- )
- )
- for /r temp\ %%a in (*) do move /y "%%a" "%~dp0"
- rd /q temp
复制代码
[ 本帖最后由 batman 于 2011-2-25 19:09 编辑 ]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |