使用批处理文件以相同的扩展名顺序重命名所有文件

伊斯梅尔·阿曼尼(Ismail AMANI)

我想这样重命名该文件:

File 1.pdf  > 1.pdf
File 2.pdf  > 2.pdf
..
File 10.pdf >10.pdf
File 11.pdf >11.pdf
File1 1.pdf >12.pdf      
File1 2.pdf >13.pdf
..

此代码有效,但无法对其进行排序:

    @echo off & setlocal EnableDelayedExpansion 

set a=1
for /f "delims=" %%i in ('dir /b *.pdf') do (
  ren "%%i" "!a!.pdf" 
  set /a a+=1
) 

结果是:

File 1.pdf  > 1.pdf
File 10.pdf > 2.pdf
File 11.pdf > 3.pdf
迈克尔·希思
@echo off
setlocal enabledelayedexpansion

if "%~1" == "stage1" goto :stage1
if "%~1" == "stage2" goto :stage2
if not "%~1" == "" exit /b 1

cmd /c "%~f0" stage1 | sort | cmd /c "%~f0" stage2
exit /b 0

:stage1
for /f "delims=" %%A in ('dir /b *.pdf') do (
    for /f "tokens=1,*" %%B in ("%%~nA") do (
        set "token1=%%~B                             "
        set "token2=                             %%~C"
        echo "!token1:~0,20!"^|"!token2:~-20!"^|"%%~A"
    )
)
exit /b 0

:stage2
set i=0
for /f "delims=" %%A in ('more') do (
    set /a "i+=1"
    for /f "tokens=3 delims=|" %%B in ("%%~A") do (
        echo ren "%%~B" "!i!.pdf"
    )
)
exit /b 0

标签stage1用空格填充文件名的2个标记,然后将每个标记修剪为20个字符的长度。每行均以表示"token1 padded"|"token2 padded"|"full filename",并通过管道传递到sort,然后通过管道传递给标签stage2以进行索引和重命名。

ren如果测试良好,请删除命令前面的回显

输出:

ren "File 1.pdf" "1.pdf"
ren "File 2.pdf" "2.pdf"
ren "File 10.pdf" "3.pdf"
ren "File 11.pdf" "4.pdf"
ren "File1 1.pdf" "5.pdf"
ren "File1 2.pdf" "6.pdf"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用批处理文件以编号顺序列出文件夹中特定扩展名的所有文件

使用批处理文件递归删除目录中所有特定类型(扩展名)的文件

Windows批处理-重命名带有扩展名的文件

重命名具有相同扩展名和任何名称的所有文件

如何使用特定扩展名重命名文件夹下的所有文件(递归方法)

批处理文件重命名:如何保留文件名的顺序?

如何使用BAT脚本重命名具有不同扩展名的顺序选择的文件?

重命名所有“。” 文件名中扩展名“ _”(扩展名除外)

批处理文件删除指定扩展名的文件

批处理文件删除文件扩展名

使用批处理文件删除文件夹中除一个扩展名(例如.idf)以外的所有文件

使用PowerShell重命名具有相同扩展名的多个文件

使用批处理文件重命名文件-原始文件名有所不同

递归批量重命名文件扩展名(Windows批处理)

添加批处理文件扩展名

批处理文件重命名带有文件名的移位

批处理文件读取内容文件没有扩展名

如何在vbscript中重命名具有相同扩展名的不同命名文件

批处理文件重命名与Python

如何重命名批处理文件

使用 PowerShell 重命名给定目录和子文件夹中没有扩展名的所有文件

批处理文件检查与文件夹中的其他扩展名相同的文件名

重命名具有多个文件扩展名的文件

如何使用批处理文件重命名或创建具有其内容名称的zip文件

重命名目录中的所有文件,同时保留任何文件扩展名

创建一个批处理文件以合并两个具有“相似名称”和相同扩展名的文件[Windows]

一次重命名多个文件,具有相同的扩展名

如何重命名具有不同扩展名的文件

重命名带有任何扩展名的perl文件