标题: [文件操作] 将所有“PC端图片”文件夹里的图片按照原来的顺序重命名为“001,002,00N,......” [打印本页]
作者: 453765918 时间: 2023-4-11 09:21 标题: 将所有“PC端图片”文件夹里的图片按照原来的顺序重命名为“001,002,00N,......”
文件夹里有N个子文件夹,子文件夹里有“主图”和“PC端图片”两个文件夹,图片的名称有纯数字序号,也有汉字加数字的序号以及带括号的序号(1)。
要将所有“PC端图片”文件夹里的图片按照原来的顺序重命名为“001,002,00N,......”
作者: 77七 时间: 2023-4-11 12:21
请提供一些具有代表性的真实文件名,如果有规律,批处理可以达到你的要求。
作者: 453765918 时间: 2023-4-11 15:48
就纯数字的吧,1,2,3,10,11
作者: qixiaobin0715 时间: 2023-4-11 16:14
你上面的几种情况需要分别处理,所以2楼的意思是你要列举所有的情况。
作者: buyiyang 时间: 2023-4-11 17:21
这个问题同样也困扰了许多人啊,试试这个吧- set "p=C:\1\2"
- rem 以上设置目录
- 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 ++}"
复制代码
作者: czjt1234 时间: 2023-4-11 21:21
比如原来的图片文件
1.jpg
风景.jpg
风景(1).jpg
山水1.jpg
改为
001.jpg
002.jpg
003.jpg
004.jpg
是不是这个意思?
作者: 453765918 时间: 2023-4-12 11:24
回复 6# czjt1234 是的
作者: 453765918 时间: 2023-4-12 11:27
回复 4# qixiaobin0715 就是纯数字的序号,如:1,2,3,4,,不管其他情况了。
作者: qixiaobin0715 时间: 2023-4-12 12:55
本帖最后由 qixiaobin0715 于 2023-4-12 13:00 编辑
假设文件夹中的图片名称是连续的自然数,图片文件的扩展名为.jpg。将下面代码另存为ANSI编码的bat文件,放在主文件夹中运行,注意备份源文件夹,以免出现意外情况:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /ad') do (
- pushd "%%i\PC端图片"
- for /f "delims=" %%j in ('dir /b /a-d *.jpg') do (
- set NewName=00%%~nj
- ren "%%j" "!NewName:~-3!.temp"
- )
- ren "*.temp" "*.jpg"
- popd
- )
- pause
复制代码
作者: 453765918 时间: 2023-4-13 08:07
回复 9# qixiaobin0715 非常感谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |