- 帖子
- 32
- 积分
- 54
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2018-8-22
|
回复 8# Batcher
目的:将每个底层文件夹下的编号最大的tif图片文件名位数+5,并将改动过名称的图像按照原有层级提取到文件夹“更改后”里,写法如下:
@echo off
setlocal enabledelayedexpansion
for /d %%a in ("*") do (
for /d %%b in ("%%a\*") do (
::将LastFile定义为文件中的最大值
set "LastFile="
for /f "delims=" %%c in ('dir /b /a-d "%%b\*.tif"') do (
::使用~n去掉后缀名(便于计算,这里不知道如果没有去掉后缀名可不可以用set /a计算,不过懒得去测试了)
set "LastFile=%%~nc"
)
::将LastFile2定义为文件中的最大值+5
set /a LastFile2=!LastFile!+5
::重命名
ren "%%b\!LastFile!.tif" "!LastFile2!.tif"
::建立临时文件存放文件夹.\更改后
if not exist ".\更改后\%%b\" (md ".\更改后\%%b\")
::复制文件并重命名
copy "%%b\!LastFile2!.tif" ".\更改后\%%b\"!LastFile2!.tif"
)
)
pause
测试了一小批数据似乎没有问题了,但是因为实际操作数据量很大,怕到时候出了问题检查不出来,所以请老师帮我看看代码有没有硬伤 |
|