Loops 如何在powershell中压缩单个文件
我有一个脚本,可以根据日期将文件打包。我如何将文件单独压缩(可能是foreach)并使它们保持在同一目录中?我在$FileSet2上也遇到了一个错误Loops 如何在powershell中压缩单个文件,loops,powershell,zip,7zip,code-cleanup,Loops,Powershell,Zip,7zip,Code Cleanup,我有一个脚本,可以根据日期将文件打包。我如何将文件单独压缩(可能是foreach)并使它们保持在同一目录中?我在$FileSet2上也遇到了一个错误 Function Zip { Param ( [string]$FileZip , [string[]]$NeedsZipping ) $Directory = Get-Location Set-Location "C:\Users\lostd\Desktop
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
}
提前感谢在$Files2上的错误是您的lt/gt翻转错误 你说的LastWriteTime比10天前的时间长,比20天前的时间短,这是错误的。我相信您希望将这两种情况颠倒过来,以便获得LastWriteTime不到10天前但比20天前更老(更大)的文件
至于绑定它们,您能否提供更多信息/说明,说明您希望如何绑定它们,以及文件应该放在哪里?$Files2上的错误是您的lt/gt翻转错误 你说的LastWriteTime比10天前的时间长,比20天前的时间短,这是错误的。我相信您希望将这两种情况颠倒过来,以便获得LastWriteTime不到10天前但比20天前更老(更大)的文件
至于捆绑它们,你能提供更多信息/说明你想如何捆绑它们,以及文件应该放在哪里吗?好的,花了一些时间,但我弄明白了。有一些问题。您需要更换以下部件:
Zip C:\Users\skochkr\Desktop\TEST.zip $Files
If(Test-Path C:\Users\lostd\Desktop\TEST.zip)
{Remove-Item $Files2}
与
这将分别压缩
$Files
中的每个文件(而不是制作一个包含所有内容的压缩文件),同时保持相同的名称和扩展名类型。压缩文件的目的地也需要设置为所需的位置,否则压缩文件将被发送到7-Zip所在的文件夹。好的,这需要一些时间,但我已经解决了。有一些问题。您需要更换以下部件:
Zip C:\Users\skochkr\Desktop\TEST.zip $Files
If(Test-Path C:\Users\lostd\Desktop\TEST.zip)
{Remove-Item $Files2}
与
这将分别压缩
$Files
中的每个文件(而不是制作一个包含所有内容的压缩文件),同时保持相同的名称和扩展名类型。压缩文件的目标也需要设置为所需的位置,否则压缩文件将被发送到7-Zip所在的文件夹。现在,$file
中的所有文件都压缩到一个文件中。我希望所有符合$File
标准的文件都单独压缩。我认为最好的方法是将$File
和$File2
放入一个数组,然后使用foreach
循环。我想把它们放在原来所在的同一个目录中。我只是不知道怎么做。现在,$File
中的所有文件都压缩到一个文件中。我希望所有符合$File
标准的文件都单独压缩。我认为最好的方法是将$File
和$File2
放入一个数组,然后使用foreach
循环。我想把它们放在原来所在的同一个目录中。我只是不知道怎么做。