Powershell 7zip 检查文件完整性
Powershell 7zip check file integrity
我正在使用以下代码使用 7zip 压缩一些文件。
$filePath = "c:\test"
$txt = Get-ChildItem -Recurse -Path $filePath | Where-Object { $_.Extension -eq ".txt" }
$limit = (Get-Date).AddDays(-30)
if (-not (test-path "$env:C:\Program Files-Zipz.exe")) {throw "$env:Program Files (x86)-Zipz.exe needed"}
set-alias sz "$env:ProgramFiles-Zipz.exe"
Get-ChildItem -Path $filePath -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
foreach ($file in $txt) {
$name = $file.name
$directory = $file.DirectoryName
$zipfile = $name.Replace(".txt",".zip")
sz a -mx=9 "$directory$zipfile" "$directory$name"
}
压缩后我需要检查文件的完整性并确保我可以打开它。这些是一些相当大的文件,我不需要解压缩它们,只是检查它们。我找到了这个命令:
7z t somearchive.zip
但这一切returns是这样的:
"c:\program files-zipz" t somefile.7z
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Processing archive: douglas.cx.txt.7z
Testing somefile.txt
Everything is Ok
Size: 761
Compressed: 492
一旦我检查了文件,它就会被移动到另一个我可以处理的文件夹。只是不确定如何处理 7zip 返回的文本。
感谢任何帮助。
行:
sz a -mx=9 "$directory$zipfile" "$directory$name"
应该是:
sz a -mx=9 "$directory$zipfile" "$directory$name" | out-null
$ok = $LASTEXITCODE -eq 0
或者如果 sz 没有 return 退出代码你必须解析文本
sz a -mx=9 "$directory$zipfile" "$directory$name" | set out
$ok = $out -like '*Everything is Ok*'
这是来自 head,但其中一个应该有效。
我正在使用以下代码使用 7zip 压缩一些文件。
$filePath = "c:\test"
$txt = Get-ChildItem -Recurse -Path $filePath | Where-Object { $_.Extension -eq ".txt" }
$limit = (Get-Date).AddDays(-30)
if (-not (test-path "$env:C:\Program Files-Zipz.exe")) {throw "$env:Program Files (x86)-Zipz.exe needed"}
set-alias sz "$env:ProgramFiles-Zipz.exe"
Get-ChildItem -Path $filePath -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
foreach ($file in $txt) {
$name = $file.name
$directory = $file.DirectoryName
$zipfile = $name.Replace(".txt",".zip")
sz a -mx=9 "$directory$zipfile" "$directory$name"
}
压缩后我需要检查文件的完整性并确保我可以打开它。这些是一些相当大的文件,我不需要解压缩它们,只是检查它们。我找到了这个命令:
7z t somearchive.zip
但这一切returns是这样的:
"c:\program files-zipz" t somefile.7z
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Processing archive: douglas.cx.txt.7z
Testing somefile.txt
Everything is Ok
Size: 761
Compressed: 492
一旦我检查了文件,它就会被移动到另一个我可以处理的文件夹。只是不确定如何处理 7zip 返回的文本。
感谢任何帮助。
行:
sz a -mx=9 "$directory$zipfile" "$directory$name"
应该是:
sz a -mx=9 "$directory$zipfile" "$directory$name" | out-null
$ok = $LASTEXITCODE -eq 0
或者如果 sz 没有 return 退出代码你必须解析文本
sz a -mx=9 "$directory$zipfile" "$directory$name" | set out
$ok = $out -like '*Everything is Ok*'
这是来自 head,但其中一个应该有效。