【发布时间】:2020-01-13 01:56:36
【问题描述】:
我有 13 个文件夹,每个文件夹有 36 个图块。
文件夹被命名:
NAMEFOLDER_60min
NAMEFOLDER_75min
...
NAMEFOLDER_240min
瓷砖是根据它们的坐标命名的
tile_x001_y001.tif to tile_x001_y006.tif
tile_x002_y001.tif to tile_x002_x006.tif
...
tile_x006_y001.tif to tile_x006_y006.tif
此时,图片按时间点分组在文件夹中,但我想按坐标分组。例如,将所有文件夹中的每个 tile_x001_y001.tif 移动到一个名为 tile_x001_y001 的新文件夹中,但随后将用于所有图片。为了防止覆盖,我相信瓷砖必须重命名为例如。在文件夹“tile_x001_y001”中:tile_x001_y001_60min.tif, tile_x001_y001_75min.tif,..., tile_x001_y001_240min.tif
我尝试创建新文件夹并尝试了一些我在网上找到的用于将图片移动/复制到相应文件夹的脚本,但它失败了,因为我尝试的脚本使用一个包含所有图片的文件夹,但我有多个文件夹,当我移动/复制时多张同名图片到新文件夹,它会覆盖它。
@echo off
for /l %%y in (1,1,6) do for /l %%x in (1,1,6) do (md tile_x00%%x_y00%%y)
@echo off
setlocal enabledelayedexpansion
for %%A in (*.tif) do (
echo file found %%A
for /f "delims=" %%B in ("%%A") do set fname=%%~nB
for /f "delims=" %%C in ("%%A") do set fextn=%%~xC
for /f "tokens=* delims=_" %%D in ("!fname!") do set folname=%%D
echo folder name !folname!
if not exist "!folname!" (
echo Folder !folname! does not exist, creating
md "!folname!"
) else (
echo Folder !folname! exists
)
echo Moving file %%A to folder !folname!
move "%%A" "!folname!"
)
echo Finished
pause
【问题讨论】:
-
您希望如何重命名同名文件?
-
请edit 提出问题并将所有相关信息放在那里,而不是发布 cmets!文件夹名称是否可以在
_*min后缀之前单独包含_?
标签: batch-file rename