我有一个脚本,该脚本可以根据日期将文件提取并压缩为一个包。我将如何单独压缩文件(也许是foreach),并将它们留在同一目录中?$ FileSet2上也出现错误。
Function Zip
{
Param
(
[string]$FileZip
,
[string[]]$NeedsZipping
)
$Directory = Get-Location
Set-Location "C:\Users\lostd\Desktop\7-ZipPortable\"
.\7zG.exe A -tzip $FileZip $NeedsZipping | Out-Null
Set-Location $Directory
}
$filename = "tester"
$CurrentTime = Get-Date
$DaySet1 = "5"
$DaySet2 = "10"
$TargetFolder = "C:\Users\lostd\Documents\*.*"
$LastMod = $CurrentTime.AddDays(-$DaySet1)
$LastMod2 = $CurrentTime.AddDays(-$DaySet2)
$FileSet1 = Get-Childitem $TargetFolder -Recurse | Where {$_.LastMod -lt "$LastMod2"}
$FileSet2 = Get-Childitem $TargetFolder -Recurse | Where {$_.LastMod -gt $LastWrite -AND $_.LastMod -lt $LastMod2}
#$FileSet1
Zip C:\Users\lostd\Desktop\TEST.zip $FileSet1
If(Test-Path C:\Users\lostd\Desktop\TEST.zip)
{
Remove-Item $FileSet2
}
提前致谢
好的,花了一些时间,但我明白了。有几个问题。您将需要替换以下内容:
Zip C:\Users\skochkr\Desktop\TEST.zip $Files
If(Test-Path C:\Users\lostd\Desktop\TEST.zip)
{Remove-Item $Files2}
与
foreach ($File in $Files)
{
Set-Location "C:\Users\lostd\Documents\purge\"
$Zipname = $File.Name.Replace(".", "-")
Zip C:\Users\lostd\Documents\purge\$zipname $File
}
sleep 5
foreach ($File in $Files)
{
Remove-Item -Force $File
}
这将分别压缩每个文件$Files
(而不是制作一个包含所有内容的zip文件),同时保持相同的名称和扩展名类型。压缩文件的目的地也需要设置为所需的位置,否则压缩文件将发送到7-Zip所在的文件夹中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句