【问题标题】:Renaming files in bulk and in ascending order in CMD在CMD中批量重命名文件并按升序
【发布时间】:2017-01-24 22:56:38
【问题描述】:

我知道这个问题已经有人问过了,但我会再问一次。 如果可能的话,有人可以告诉我如何在 CMD 中批量重命名和升序重命名。我已经尝试在 powershell 中重命名,但无济于事。它只让我使用一次,我需要重命名另一个文件夹文件但无济于事。它不允许它重命名另一个文件夹中的文件。这是我在 powershell 中使用的代码:

$i = 1
Get-ChildItem *.mkv | %{Rename-Item $_ -NewName ('Haikyuu - {0:D2}.mkv' -f $i++)}

我正在为每个文件夹重命名我的动漫系列,我的一些副本有 100 多个视频。并且不知何故你可以教我每个代码的含义(必须在 CMD 中使用的代码)。我搜索的那些不能用外行的话理解它,或者没有告诉用户它应该如何工作。先感谢您。顺便说一句,该文件夹放置在外部驱动器中。

【问题讨论】:

  • 你说,在cmd,所以你想要一个batch-file,还是一个cmd 单行? “升序”是什么意思 - 按字母顺序或字母数字顺序? cmd 命令只支持前者,因此要实现后者,您需要一些代码;输入文件的清晰模式将有助于减少代码量...

标签: powershell cmd file-rename batch-rename


【解决方案1】:

所以从头开始:

$i= 用于存储初始值的变量 1

Get-ChildItem = 类似于“dir”,列出特定路径下的文件和文件夹。

在这种情况下,它列出了所有以任何开头但扩展名为 .mkv 的文件 * 表示通配符。

| = 将第一个命令的输出作为下一个命令的输入传递的管道。

% = ForEach-Object 正在逐个迭代来自管道的每个对象。

$_= 当前管道对象。在这里,它一个一个地获取每个对象并使用 Rename-Item

对其进行重命名

-NewName = 是重命名项的参数,要求传递新名称。

希望它能阐明您的需求。

【讨论】:

  • Rutta 我已经知道一些教程中的 powershell 代码。我希望你能给我一些可以在 CMD 中使用的代码,并教我如何使用每个代码。
  • 请问,为什么我只能使用一次powershell代码?
  • @BlackSkull 如果您认为它只能使用一次,那么您显然不理解这个 powershell 代码。我不确定您期望发生什么,以及它如何在不同的目录中失败,因此很难指导您。
  • @notjustme 没有。我的意思是,那个代码,我只能用一次。然后,当我更改路径和我想要的名称以编辑另一个文件夹中的另一个文件时,powershell 会给出如下错误:文件的路径/名称.mkv 不存在。但是文件的名称存在。我已经在外部尝试了不同的路径,但无济于事。
【解决方案2】:

我无法重命名视频文件的原因是文件名上有[括号]。 所以我用这个:

Get-ChildItem -Recurse -Include *.mkv | Rename-Item -NewName { $_.Name.replace("[","").replace("]","").replace("(","").replace(")","") }

在同一目录中,我也可以访问子文件夹以省略括号和圆括号。然后我继续在问题中使用上面的代码重命名每个文件夹中的文件。我对每个文件夹进行“重命名”的原因是,每个文件夹都是不同的动漫系列。但上面的代码正在运行。 如果有人可以给我比重复“替换”并连接它更少的代码,我会很乐意接受并选择它作为最佳答案。 :)

【讨论】:

    【解决方案3】:

    如果您对源使用参数-LiteralPath,则无需事先重命名。

    %i = 1
    Get-ChildItem *.mkv | 
      ForEach {Rename-Item -LiteralPath "$_" -NewName ('Haikyuu - {0:D2}.mkv' -f $i++)}
    

    关于排序的提示,我希望源文件的当前编号具有恒定的宽度,否则结果会混淆,因为字母排序(这是 ntfs 格式化驱动器固有的)会将数字 10 排序在 2 前面.

    要检查这一点,请将参数 -whatif 附加到 Rename-Item 命令

    【讨论】:

      猜你喜欢
      • 2012-05-04
      • 2014-04-22
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      • 2013-12-16
      • 2015-09-17
      相关资源
      最近更新 更多