在工作中,我们使用定制程序搜索目录树并查找单个图像文件。这些文件存储在具有7位数名称的文件夹中,以“18”开头 - 例如'1873456','1873457','1873458'等。我遇到的问题是去年某个时候创建的程序这些文件夹并填充其中的图像达到'1899999' - 然后翻到'18100000'并继续进行,超过4,000个文件夹,然后才被捕获并纠正。 我们使用的定制程序只能处理七位数的文件夹名称。我想要做的是创建一个批处理文件,通过删除名称中的额外“1”来重命名所有八位数文件夹,因此'18100000'变为'1800000',依此类推,直到'18104013'变为'1804013'。
有人可以帮忙吗?
答案 0 :(得分:0)
像
这样的东西for /l %%x in (100000,1,104013) do (
set oldsuffix=%%x
set newsuffix=%oldsuffix:~-5%
ren 18%%x 18%newsuffix%
)
答案 1 :(得分:0)
在基本文件夹中运行它,它不会更改任何文件夹。
将创建一个名为renfile.bat.txt
的文件,其中包含与filespec匹配的文件夹的rename命令。在记事本中检查它是否正常,然后将其重命名为renfile.bat并运行它。
没有经过测试。
@echo off
setlocal enabledelayedexpansion
for /d /r %%a in (18??????) do (
set "name=%%~nxa"
>>renfile.bat.txt echo ren "%%a" "!name:~0,2!!name:~3!"
)
答案 2 :(得分:0)
setlocal enableextensions enabledelayedexpansion
for /d /r "c:\somewhere" %%f in (181?????) do (
set "name=0" & set /a "name+=%%~nf" 2>nul
if !name! gtr 1899999 ren "%%~ff" "18!name:~-5!"
)