В качестве части автоматизации резервного копирования некоторых наших лог-файлов разработки я использую скрипт Powershell и хотел бы переименовать файл 7zip, который я только что создал, чтобы соответствовать последней части имени первого файл и последнюю часть последнего файла в архиве.Переименование zip для соответствия его содержимому с помощью PowerShell
Например, У меня есть три файла: file1-03082013.log, file2-04082013.log и file3-05082013.log, они сжаты с использованием автоматического сценария Powershell и 7zip для создания log.zip. Теперь я хочу переименовать log.zip в log-03082013 - 05082013 (сопоставляя последнюю часть первого файла и последнюю часть последнего файла в только что созданном архиве).
Вот полный сценарий, который я создал таким образом. (Я довольно новичок в написании сценариев в Powershell, поэтому любые комментарии о том, как улучшить мой существующий скрипт, также приветствуются) Надеюсь, вы, ребята, можете хоть как-то помочь! Заранее спасибо!
#Variables
$Source = "C:\Path\"
$Destination = "C:\ZIP"
$Temp = "C:\Templog\"
$Previous = "C:\Templog\"
$programma = "C:\Program Files\7-Zip\7z.exe"
#Copy files to TempFolder
Function CopyFile
{
Copy-Item -Recurse -Filter "*.svclog" -path $Source -Destination $Temp
}
CopyFile
#Delete Old Log Files on server
Function DelOldFile
{
if (Test-Path $Source)
{
$Days = "7"
$Now = Get-Date
$LastWrite = $Now.AddDays(-$days)
$Files = get-childitem $Source -include *.svclog -recurse |Where {$_.LastWriteTime -le "$LastWrite"}
foreach ($File in $Files)
{write-host "Deleting file $File" -foregroundcolor "Red"; Remove-Item $File | out-null}
}
Else
{Write-Host "The folder $Source doesn't exist! Check the folder path!" -foregroundcolor "red"}
}
DelOldFile
#Create .zip archive from files and folders in Temp folder and copy to destination folder using 7zip.
Function ZipFile
{
Start-Process $programma -ArgumentList "a $Destination\Log.zip $Temp" -Wait -PassThru
}
ZipFile
#Delete Temp Folder
Function GetPrevious
{
if (Test-Path $Previous){
Remove-Item $Previous -Recurse -Force
}
}
GetPrevious
Это сделало трюк. Большое спасибо. Я отредактировал и подстроил скрипт в соответствии с нашими потребностями. Огромное спасибо! Есть ли способ поделиться моим завершенным скриптом, чтобы он был доступен для всех? – RoelofW
Рад помочь, вы могли бы добавить свой заполненный скрипт в качестве ответа, если считаете, что это поможет другим. –
Ах да, конечно. Еще раз спасибо. – RoelofW