Я очень новичок в powershell. У меня есть папка с несколькими файлами, каждое имя файла, как:powershell переименовать все файлы в папке по шаблону
File1_backup_2016_09_01_095444_1628350.bak
нужно переименовать их все Filex_yyyymmdd.bak
Я очень новичок в powershell. У меня есть папка с несколькими файлами, каждое имя файла, как:powershell переименовать все файлы в папке по шаблону
File1_backup_2016_09_01_095444_1628350.bak
нужно переименовать их все Filex_yyyymmdd.bak
Что-то подобное должно работает для вас:
Get-ChildItem "C:\temp" |foreach {
$SplitName = $_.Name -split '_'
Rename-Item $_.FullName -NewName "$($SplitName[0])_$($SplitName[2])$($SplitName[3])$($SplitName[4]).bak"
}
Он говорит: Переименовать-Пункт: Невозможно переименовать, потому что элемент в 'AIB_backup_2016_09_01_095444_1628350.bak' не существует. (Я изменил путь, чтобы исправить один и получить-childitem работает, также проверил параметр split и может видеть разные части данных) – thotwielder
Я изменил пример, и теперь он должен работать. Нужно использовать $ _. FullName insetad $ _ в rename comand – autosvet
Это работает, но мне нужно что-то вроде этого: File1_20160901.bak, File1 - это часть перед первым _ в исходном имени файла. – thotwielder
Такие основные задачи обычно легко решить [googling существующего решения] (https://www.google.com/#q=stackoverflow+powershell+rename+files+by+date). Нотабене StackOverflow не является Google. – wOxxOm
Или, если вы знаете regexp, вы можете [сразу найти примеры] (https://www.google.com/#q=powershell%20rename%20files%20using%20regexp) использования в PS для переименования файлов. – wOxxOm