1

Предположим, у меня есть 10 файлов, сгенерированных системой каждый день в папке D:\Temp. Имена СЛУЧАЙНЫ при генерации.

Предположим, мне нужно переименовать самый старый в «aaa», второй самый старый в «bbb» .. затем «ccc» ... «ddd».

Может кто-нибудь помочь написать пакетный скрипт? Powershell cmdlt тоже подойдет.

Спасибо!

2 ответа2

2

Вот решение с использованием списка имен:

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

Было бы важно, как вы хотите назвать их. Использовать что-то вроде 1,2,3,4 проще всего. Вам нужно будет объявить переменную для имени и инкрементатора. Хотя это относительно легко и просто. Для нахождения порядка создания:

Get-ChildItem h:\CallCList | Sort-Object CreationTime |`
    ForEach-Object {
    Rename-Item $_.Name -NewName $NameToUse
    }

Это будет работа для поиска и переименования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .