使用 PowerShell 解压缩 GZip 可以,但我可以直接解压缩到文件吗?
Unzipping a GZip with PowerShell works but can I extract directly to file?
互联网是一个了不起的地方,我发现 this code 让我可以将 tar.gz
文件扩展到 .tar
:
Function DeGZip-File{
Param(
$infile,
$outfile = ($infile -replace '\.gz$','')
)
$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)
$buffer = New-Object byte[](1024)
while($true){
$read = $gzipstream.Read($buffer, 0, 1024)
if ($read -le 0){break}
$output.Write($buffer, 0, $read)
}
$gzipStream.Close()
$output.Close()
$input.Close()
}
DeGZip-File "C:\temp\maxmind\temp.tar.gz" "C:\temp\maxmind\temp.tar"
现在我手上有一份.tar
文件。但是我怎样才能打开它呢?
我的目标是直接从 .tar.gz
提取到文件。
Get-ChildItem -Path $InputPath -Filter "*.tar.gz" |
Foreach-Object {
tar -xvzf $_.FullName -C $OutputPath
}
互联网是一个了不起的地方,我发现 this code 让我可以将 tar.gz
文件扩展到 .tar
:
Function DeGZip-File{
Param(
$infile,
$outfile = ($infile -replace '\.gz$','')
)
$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)
$buffer = New-Object byte[](1024)
while($true){
$read = $gzipstream.Read($buffer, 0, 1024)
if ($read -le 0){break}
$output.Write($buffer, 0, $read)
}
$gzipStream.Close()
$output.Close()
$input.Close()
}
DeGZip-File "C:\temp\maxmind\temp.tar.gz" "C:\temp\maxmind\temp.tar"
现在我手上有一份.tar
文件。但是我怎样才能打开它呢?
我的目标是直接从 .tar.gz
提取到文件。
Get-ChildItem -Path $InputPath -Filter "*.tar.gz" |
Foreach-Object {
tar -xvzf $_.FullName -C $OutputPath
}