![如何根据时间戳重命名某些文件](https://linux22.com/image/1363439/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E6%97%B6%E9%97%B4%E6%88%B3%E9%87%8D%E5%91%BD%E5%90%8D%E6%9F%90%E4%BA%9B%E6%96%87%E4%BB%B6.png)
假设系统每天在 D:\Temp 下生成 10 个文件,文件名称都是随机生成的。
假设我需要将最旧的一个重命名为“aaa”,将第二旧的重命名为“bbb”...然后是“ccc”...“ddd”。
有人可以帮忙写批处理脚本吗?Powershell cmdlt 也很好。
谢谢!
答案1
以下是使用名称列表的解决方案:
$names = @('one.txt', 'two.txt', 'three.txt', 'four.txt', 'five.txt', 'six.txt', 'seven.txt', 'eight.txt', 'nine.txt', 'ten.txt')
$count = 0
foreach($file in (Get-ChildItem i:\temp | Sort-Object LastWriteTime | Select-Object -First 10)){
Rename-Item $file.FullName (Join-Path $file.DirectoryName $names[$count])
$count++
}
答案2
如何命名它们很重要。使用 1,2,3,4 之类的东西最简单。您需要声明名称和增量器的变量。虽然这相对简单直接。为了找到创建顺序:
Get-ChildItem h:\CallCList | Sort-Object CreationTime |`
ForEach-Object {
Rename-Item $_.Name -NewName $NameToUse
}
这将是查找和重命名的工作。