У меня есть каталог, который содержит более 400 подпапок. В каждой из этих подпапок каждый день появляется новый файл. Каждый новый файл имеет то же имя, что и файл, который появился вчера в той же папке. Каждая папка содержит файлы с разными именами, чем в другой папке, но новые файлы в одной и той же папке всегда имеют одинаковые имена. Я не хочу, чтобы файлы перезаписывались каждый день. Вместо этого я бы хотел, чтобы Powershell добавил сегодняшнюю дату после имени файла и перед расширением. Я знаю, как сделать это для одной подпапки, но я не хочу создавать более 400 сценариев (по одному для каждой подпапки).
Это скрипт, который отлично справляется с работой для каждой отдельной папки.
$fileToRename = "E:\Backup\ABLBackup\folder1\Project1.txt"
if (Test-Path $fileToRename)
{
$fileName = [system.io.path]::GetFileNameWithoutExtension($fileToRename)
$dateSuffix = get-date -Format 'yyyy_MM_dd'
$fileExtension = [system.io.path]::GetExtension($fileToRename)
$newFileName = '{0}_{1}{2}' -f $fileName, $dateSuffix, $fileExtension
Rename-Item -Path $fileToRename -NewName $newFileName
}
Я хотел бы знать, как изменить скрипт выше, чтобы все 400+ подпапок могли быть включены в один скрипт. Я знаю, что могу повторить одну и ту же команду 400+ раз и сохранить ее как один скрипт, но это невозможно, поскольку пользователи добавляют новые папки, не сообщая мне об этом. Конечно, должен быть какой-то автоматический способ получения всех новых файлов, которые появились в подпапках.
Структура папок выглядит так:
E:\Backup\ABLBackup\folder1\Project1.txt
E:\Backup\ABLBackup\folder2\Project2.txt
E:\Backup\ABLBackup\folder3\Project3.txt
E:\Backup\ABLBackup\ Folder4\ Project4.txt
Любая помощь будет оценена!