作为自动备份我们的一些开发日志文件的一部分,我正在使用 Powershell 脚本,并想重命名我刚刚创建的一个 7zip 文件,以匹配第一个文件名称的最后一部分和最后一个文件的最后一部分档案。
例如; 我有三个文件,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