工作流程:
使用cd FilePath\Folder
首次
写入ls
获取文件读取
代码.png
仅限文件:
Get-ChildItem *.png |
ForEach-Object -Begin { $count = 1 } -Process {
Rename-Item $_ -NewName "$count.png"; $count++}
答案1
获取具有扩展名.png
和的文件的通用编号.jpg
:
$ext = '.png','.jpg'
Get-ChildItem | Where-Object {$_.Extension -in $ext} | ForEach-Object -Begin { $count = 1 } -Process { Rename-Item $_ -NewName "$count.png"; $count++ }
答案2
$count=[int] 1
Set-Location 'C:\FilePath'
Get-ChildItem -Path .\*.jpg,.\*.png |
Foreach { Rename-Item $_.FullName -new $((Get-FileHash -Algorithm MD5 $_.FullName).Hash+$_.Name) }
Get-ChildItem -Path .\*.jpg,.\*.png | Foreach { if ($count -ieq (Get-ChildItem -Path .\*.jpg).count) {
$count=[int] 1 } else { $count++ } ; $_ | Rename-Item -NewName ('{0}{1}' -f $count,$_.Extension) }
- 考虑到下面评论中描述的情况...我建议您对文件进行双重命名,以避免在最终/永久操作中重命名重复的文件...
谢谢你的回答。运行了几次才发现。这确实没有
所有文件,所以它成功了。但它似乎以一种我没有想到的方式排序
期望。文件似乎不知何故混在一起了。错误信息如下:
Rename-Item :
Cannot create a file when that file already exists
。
我拥有的文件已经有数字,有 3 到 4 个字符的 xxx,
一些 0xxx。fx 324 和 0325。也许这就是原因。它们都在
我希望他们按顺序排列,但需要新的号码。也许有更简单的
如何实现这个目标?
请注意,错误指出需要在永久重命名操作之前进行预处理。
我建议您首先重命名它,以便文件的各个新目标名称没有重复的名称。
可以通过以下方式完成此操作:将每个文件重命名为包含以下内容的名称布局一些奇数/唯一字符串 + 当前文件名称 + .文件扩展名
Rename-Item $_.FullName -new $((Get-FileHash -Algorithm MD5 $_.FullName).Hash+$_.Name)
观察:使用时,第一个应该用于前向补码,其中对相关扩展进行计数以获取要在第二个扩展中使用的数值重置的计数值。否则,计数器将重置,而相关扩展不在最后一个文件中。 原谅我的英语水平有限,我希望你能理解,如果有疑问,请不要更改此顺序:Get-Childitem *.jpg,another extension
eXtension
eXtension
*.jpg,*.png | .. | . {.. ($count -eq (Get-ChildItem *.jpg).count) ..