使用 PowerShell 重命名基本名称中包含偶数的文件

yod*_*ode 1 powershell windows-10

我在当前目录中有这样的文件:

现在我想2在它是偶数时添加到文件基名中。我的意思是我想要:

000252.png ? 000254.png
000254.png ? 000256.png
000256.png ? 000258.png
Run Code Online (Sandbox Code Playgroud)

换句话说,这是我想要的最终结果:

我如何使用PowerShell来实现这一点?

You*_*idi 5

简答

假设工作目录包含所有要重命名的文件(并且只有那些文件),这里有一个单行来重命名它们:

dir . | sort -des | % { if ($_.BaseName % 2 -eq 0 ) { mv $_ $((2 + $_.BaseName).ToString("000000") + $_.Extension) } }
Run Code Online (Sandbox Code Playgroud)

解释

  • dir .列出当前目录 ( .)中的文件。dirGet-ChildItem的别名。
  • sort -des-des名称的降序 ( ) 对这些文件进行排序。sortSort-Object的别名,-des-Descending.
  • %ForEach-Object的别名,它{}为管道中的每个项目执行一个脚本(括在花括号 ( ) 中)。
  • if ($_.BaseName % 2 -eq 0 )用于使用相等( -eq) 和模数( %) 运算符检查基名称是否包含偶数。
  • mvMove-Item的别名,可用于重命名文件。
  • $_是管道中的当前项目
  • (2 + $_.BaseName) 提取基本名称并添加 2。
  • .ToString("000000") 用前导零格式化这个新数字(假设您总共需要六位数字)。
  • + $_.Extension添加原始文件扩展名$_.Extension是管道中当前文件的扩展名,包括.

评论

此解决方案将重命名名为000998.pngto的文件001000.png(换句话说,它确保总共有 6 位数字)。