所以我需要CMD if
语句脚本来根据图像名称将文件移动到某些文件夹。换句话说,脚本需要检查图像文件名:123456_large.jpg
并将其移动到文件夹LARGE
。但是一旦将文件移动到此文件夹,就需要将其重命名为:123456.jpg
而不是123456_large.jpg
...
因此if
语句找到*_LARGE.jpg
,移至LARGE
文件夹并重命名文件名以删除_LARGE
。
任何想法?
答案 0 :(得分:0)
假设所有文件都在一个公共文件夹中,并且该公共文件夹中也存在大目录,则可以使用此文件夹。
@echo off
FOR /F "tokens=1* delims=_" %%G IN ('dir /a-d /b *.jpg') DO (
IF /I "%%~nH"=="large" move "%%~G_%%~H" "large\%%~G%%~xH"
)
基本上这个代码的作用是什么: 获取批处理文件所在的当前文件夹中所有jpg文件的列表。 在第一个下划线处拆分文件名,并将文件名的第一部分分配给变量%% G,将文件名的其余部分分配给%% H. 使用FOR变量修饰符,然后检查没有扩展名的文件名的第二部分是否等于大。如果是,则移动文件并同时重命名,再次使用FOR变量修饰符。
如果您想了解FOR修饰符,请打开cmd提示符并输入:FOR /? 这是帮助文件的最后一部分。
答案 1 :(得分:0)
这非常完美!现在有一些改进...有没有办法在前一个脚本中执行相同的操作,但是如果文件名为:123456_ALT1_large.jpg(或ALT2,ALT3,ALT4)?