标题: [文件操作] 【已解决】求助批处理怎么批量修改文件名 [打印本页]
作者: liyu963926475 时间: 2020-11-30 14:38 标题: 【已解决】求助批处理怎么批量修改文件名
本帖最后由 liyu963926475 于 2020-11-30 16:27 编辑
有大量图片,名称最后一个数字不管是个位数、十位数还是百位数,统一需改成三位数,比如:
0313-RS ·0010-0001-1-1-1.jpg 修改为 0313-RS ·0010-0001-1-1-001.jpg
0313-RS ·0010-0001-1-2-11.jpg 修改为 0313-RS ·0010-0001-1-2-011.jpg
0313-RS ·0010-0001-3-1-1.jpg 修改为 0313-RS ·0010-0001-3-1-001.jpg
0313-RS ·0010-0001-3-2-35.jpg 修改为 0313-RS ·0010-0001-3-2-035.jpg
0313-RS ·0010-0001-9-1-1-1.jpg 修改为 0313-RS ·0010-0001-9-1-1-001.jpg
0313-RS ·0010-0001-9-1-2-259.jpg 修改为 0313-RS ·0010-0001-9-1-2-259.jpg
不知道这个要求可以用批处理实现吗?
作者: went 时间: 2020-11-30 16:06
放到jpg文件夹中运行- @echo off & cd /d "%~dp0"
- set "zero=000"
- for %%i in ("*.jpg") do (
- set "head=" & set "foot="
- call :split "%%~ni"
- call set "foot=%zero%%%foot%%"
- call set "foot=%%foot:~-3%%"
- echo %%i
- call echo %%head%%%%foot%%.jpg
- call move "%%i" "%%head%%%%foot%%.jpg"
- echo ---------------------------
- )
- pause&exit
-
- :split
- set "str=%~1"
- if not "%str:~-1%"=="-" (
- set "head=%str:~0,-1%"
- set "foot=%str:~-1%%foot%"
- call :split "%%head%%"
- ) else goto :eof
复制代码
作者: liyu963926475 时间: 2020-11-30 16:24
回复 2# went
感谢^_^
作者: liyu963926475 时间: 2020-11-30 16:26
回复 2# went
发现批处理是真的强大
作者: WHY 时间: 2020-11-30 17:05
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b *-*.jpg ^| findstr /i "\-[0-9]\.jpg$ \-[0-9][0-9]\.jpg$"') do (
- set "Name=%%~ni"
- if "!Name:~-3,1!" == "-" (
- ren "%%i" "!Name:~0,-2!0!Name:~-2!%%~xi"
- ) else (
- ren "%%i" "!Name:~0,-1!00!Name:~-1!%%~xi"
- )
- )
- pause
复制代码
作者: WHY 时间: 2020-11-30 17:08
- PowerShell "dir *-[0-9].jpg, *-[0-9][0-9].jpg | ren -NewName {$a=$_.Name -split '(?<=-)(?=\d+\.jpg$)'; $a[0] + $a[1].PadLeft(7, '0')} -WhatIf"
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |