[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 将所有“PC端图片”文件夹里的图片按照原来的顺序重命名为“001,002,00N,......”

文件夹里有N个子文件夹,子文件夹里有“主图”和“PC端图片”两个文件夹,图片的名称有纯数字序号,也有汉字加数字的序号以及带括号的序号(1)。
要将所有“PC端图片”文件夹里的图片按照原来的顺序重命名为“001,002,00N,......”

有汉字加数字的序号

请提供一些具有代表性的真实文件名,如果有规律,批处理可以达到你的要求。
bat小白,请多指教!谢谢!

TOP

就纯数字的吧,1,2,3,10,11

TOP

你上面的几种情况需要分别处理,所以2楼的意思是你要列举所有的情况。

TOP

这个问题同样也困扰了许多人啊,试试这个吧
  1. set "p=C:\1\2"
  2. rem 以上设置目录
  3. powershell -c "$i = 1;$files = dir -LiteralPath '%p%' -File ;Add-Type 'using System;using System.Collections.Generic;using System.Runtime.InteropServices;public static class ExpDir{[DllImport(\"Shlwapi.dll\",CharSet=CharSet.Unicode)]public static extern int StrCmpLogicalW(string p1,string p2);public static string[] Sort(string[] f){Array.Sort(f,StrCmpLogicalW);return f;}}';[ExpDir]::Sort($files)  | %%{ren ('%p%\' + $_) -NewName ('{0:D3}{1}' -f $i, $([IO.Path]::GetExtension($_))); $i ++}"
复制代码

TOP

比如原来的图片文件

1.jpg
风景.jpg
风景(1).jpg
山水1.jpg

改为

001.jpg
002.jpg
003.jpg
004.jpg

是不是这个意思?

QQ 20147578

TOP

回复 6# czjt1234   是的

TOP

回复 4# qixiaobin0715 就是纯数字的序号,如:1,2,3,4,,不管其他情况了。

TOP

本帖最后由 qixiaobin0715 于 2023-4-12 13:00 编辑

假设文件夹中的图片名称是连续的自然数,图片文件的扩展名为.jpg。将下面代码另存为ANSI编码的bat文件,放在主文件夹中运行,注意备份源文件夹,以免出现意外情况:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /ad') do (
  4.     pushd "%%i\PC端图片"
  5.     for /f "delims=" %%j in ('dir /b /a-d *.jpg') do (
  6.         set NewName=00%%~nj
  7.         ren "%%j" "!NewName:~-3!.temp"
  8.     )
  9.     ren "*.temp" "*.jpg"
  10.     popd
  11. )
  12. pause
复制代码

TOP

回复 9# qixiaobin0715 非常感谢

TOP

返回列表