【发布时间】:2020-08-31 11:16:10
【问题描述】:
这是一个用于重命名文件的带有 enabledelayedexpansion 的示例脚本:
How to write a batch file to rename files in numerically order within a particular folder?
如何保留原始文件顺序? 我需要一个可能的 Bash 和 Batch (DOS/Windows) 解决方案。
编辑:好的 - 我认为我的批处理情况的具体示例对于理解排序问题是必要的。
我拥有的是文件夹中的 .cab 文件,如下所示:
“1_1.cab” - “1_120.cab”
我尝试了解如何为结果重命名文件:
“1.cab” - “120.cab”
理论上必须有办法在重命名时照顾所有“1_”以实现原始顺序。
在这种特定情况下可能的批处理解决方案:for /F "tokens=1,2 delims=_" %%G in ('dir /b /A:-D *.cab') do rename %%G_%%H %%H
【问题讨论】:
-
你指的问题是关于DOS批处理文件的。在这里,您询问有关 bash 的问题。所以这两个问题之间的关系比较模糊,解决方案也会大不相同。
-
其实我都想知道。如何使用 DOS 批处理文件解决这个问题?
-
在 DOS 中解决这个问题?完全不知道,对不起。但我认为你可以通过安装 CygWin 在 Windows 中运行 bash 脚本。
-
这取决于您认为原始文件的顺序。特别是因为您链接的示例中的那些不是按字母顺序、数字顺序或自然顺序,并且该问题中没有任何内容可以显示大小/创建时间/上次修改/上次访问。如果要更具体一些,关于我们应该如何提出我们的建议或答案,将会有所帮助。请edit your question 进行澄清。另请注意,本网站的功能不是为人们编写代码,而是帮助他们解决失败的代码。
-
好的。对于我特定情况下的批处理(请参阅我的上次编辑),适用的方法可能是: for /F "tokens=1,2 delims=_" %%G in ('dir /b /A:-D *.cab')重命名 %%G_%%H %%H
标签: bash batch-file rename batch-rename