Sunday, March 29, 2015

powershell - How to rename some files according to their timestamp


suppose I have 10 files generated by the system every day under D:\Temp. The names are RANDOMLY when generated.


Assume I need to rename the oldest one to be 'aaa', the second oldest one to be 'bbb'..then 'ccc'...'ddd'.


can someone help to write batch script? Powershell cmdlt will be good as well.


Thanks!


Answer



Here is a solution using a list of names:


$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++
}

No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...