将文件重命名为数字顺序时保留原始顺序吗?

问题描述 投票:0回答:1

这是一个具有enableelayedexpansion的示例脚本,用于重命名文件:How to write a batch file to rename files in numerically order within a particular folder?

但是如何保留原始文件顺序?我需要针对Bash和批处理(DOS / Windows)的可能解决方案。

编辑:好的-我认为有必要针对我的批次情况提供一个具体示例,以了解排序问题。我所拥有的是文件夹中的.cab文件,如下所示:“ 1_1.cab”-“ 1_120.cab”我尝试了解如何为结果重命名文件:“ 1.cab”-“ 120.cab”理论上,必须有一种在重命名以实现原始顺序时照顾所有“ 1_”的方法。

@回声关闭setlocal enabledelayedexpansion设置名称=文件名设置Num = 1为(“ 1 _ *。cab)中的/ r %% i做(任“ %% i”“!Num!.cab”设置/ a Num + = 1)

bash batch-file rename batch-rename
1个回答
1
投票

据我所知,我建议您尝试:

for file in *; do ((i++)); mv "$file" "$i.${file##*.}"; done

这会将当前目录中所有未隐藏的文件重命名为名称为数字,后缀与原始文件相同的文件。这些数字将遵守文件的现有顺序。

还请确保您没有以基数为编号的文件:您有擦除它的风险。

如果不确定结果,请在实际执行操作之前将mv更改为echo mv以了解将要发生的事情。

© www.soinside.com 2019 - 2024. All rights reserved.