我正在尝试编写一个powershell脚本来解压缩gziped文件。这个脚本完美适用于小文件,大文件(十几MB解压缩大小),它产生的结果不完整。
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18052
BuildVersion 6.3.9600.16406
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
没有引发任何错误,它看起来像脚本顺利完成。使用7z解压缩时,文件已完成。知道为什么会这样吗?
$infile = "somefile.gz"
$outfile = ($infile -replace '\.gz$','.xml')
$input = New-Object System.IO.FileStream $inFile, ([IO.FileMode]::Open), ([IO.FileAccess]::Read), ([IO.FileShare]::Read)
$output = New-Object System.IO.FileStream $outFile, ([IO.FileMode]::Create), ([IO.FileAccess]::Write), ([IO.FileShare]::None)
$gzipStream = New-Object System.IO.Compression.GzipStream $input, ([IO.Compression.CompressionMode]::Decompress), true
$buffer = New-Object byte[](0x1000)
while(($read = $gzipstream.Read($buffer, 0, $buffer.Length)) -gt 0){
$output.Write($buffer, 0, $read)
}
$gzipStream.Close()
$output.Close()
$input.Close()