我需要以下重命名脚本的帮助。我试图通过在末尾添加RAW并使用递增数字重命名以下文件
原始文件名:
AFC17073199C
AFC17080199C
AFC17080299C
重命名后的文件应为:
AFC17073199CRAW.101
AFC17080199CRAW.102
AFC17080299CRAW.103
使用的脚本:
cd D:/TempKIG/F.kig_TEMP/E.kig_FILES/F.kig_0829460180
ls
$files = Get-ChildItem -File -Filter '*99C'
$global:i = 0; Get-Random $files -Count $files.Count |
Rename-Item -NewName { "$files"+'RAW.{0:100}' -f ++$global:i}
SET resexe=0
答案 0 :(得分:1)
我相信你的问题是你需要遍历文件。使用ForEach
或ForEach-Object
。然后,您可以将要重命名的单个文件通过管道传输到Rename-Item
$i = 1
Get-ChildItem D:/TempKIG/F.kig_TEMP/E.kig_FILES/F.kig_0829460180 -File -Filter '*99C' |
ForEach-Object {
$_ | Rename-Item -NewName { "$($_.basename)RAW.{0:100}" -f $i}
$i++
}
也不需要将$i
放入全局范围。如果您想要随机化订单,可以在Get-ChildItem
输入之前将Sort-Object {Get-Random}
传送到ForEach-Object
。
如果您在Windows上运行PowerShell,SET resexe=0
可能没有按照您的意愿执行操作。这会设置变量${resexe=0} = $null
。如果您想使用Set
(Set-Variable
的别名),您可能希望使用set resexe 0
。但是$resexe = 0
更加简洁。