返回列表 发帖
本帖最后由 aloha20200628 于 2025-1-24 19:00 编辑

回复 1# 228630386

以下代码存为 test.bat 运行,与 *.jpg 图片文件同目录
代码中假设 1200x1200 尺寸的图片文件名命名规则均为 n.jpg 其中 n=整数
2>1/* ::
@echo off &setlocal &set/p "pF=拖入要复制的图片文件:"
if not defined pF exit/b
set "pF=%pF:"=%"
for /f %%n in (
  'dir /b/a-d *.jpg^|findstr /ib "[0-9][0-9]*\.jpg"^|cscript /nologo /e:jscript "%~f0" '
) do if %%n gtr 0 copy /y "%pF%" "%%n.jpg"
pause&exit/b */
ws=WSH.stdin, wi=WSH.createobject("wia.imagefile"), maxF=-1;
while (!ws.atendofstream) {
pF=ws.readline(), wi.loadfile(pF);
if (wi.width != 1200 || wi.height != 1200) continue;
n=~~pF.split('.')[0];
if (n>maxF) maxF=n;
}
WSH.echo(++maxF), WSH.quit();COPY

TOP

本帖最后由 aloha20200628 于 2025-1-24 19:02 编辑

回复 5# 228630386

订正了3楼代码...
代码运行开始会等候输入或拖入要复制的图片文件全路径名(例如 d:\jpg\abc.jpg)
然后遍历当前目录中全部1200x1200尺寸的 n.jpg 文件,获取其中 n 的最大值+1(例如19+1),作为 d:\jpg\abc.jpg 文件复制到当前目录后的新名 20.jpg

TOP

本帖最后由 aloha20200628 于 2025-1-24 21:13 编辑

回复 7# 228630386

以下代码会递归处理当前目录下的每一个子目录》将要复制的图片文件复制到每一个子目录中,并更名为与其对应的 n+1.jpg
2>1/* ::
@echo off &setlocal &set/p "pF=拖入要复制的图片文件:"
if not defined pF exit/b
set "pF=%pF:"=%"
for /r /d %%d in (*) do (
  pushd "%%d" & for /f %%n in (
  'dir /b/a-d *.jpg^|findstr /ib "[0-9][0-9]*\.jpg"^|cscript /nologo /e:jscript "%~f0" "%%d" '
  ) do if %%n gtr 0 copy /y "%pF%" "%%n.jpg"
  popd)
pause&exit/b */
v=WSH.arguments, ws=WSH.stdin, wi=WSH.createobject("wia.imagefile"), maxF=-1;
while (!ws.atendofstream) {
    pF=ws.readline(), wi.loadfile(v(0)+'\\'+pF);
    if (wi.width != 1200 || wi.height != 1200) continue;
    n=~~pF.split('.')[0];
    if (n>maxF) maxF=n;
}
WSH.echo(++maxF), WSH.quit();COPY

TOP

返回列表