解压缩gzip文件并接受实际zip中包含的文件的名称

时间:2015-01-15 19:13:41

标签: file powershell unzip gz

我正在使用我发现的脚本本地inzip .gz文件,它工作正常。脚本如下:

Function DeGZip-File{
    Param(
        $infile,
        $outfile       
        )

    $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()
}

$infile="dir\somename.gz"
$outfile="dir\newname.txt"

DeGZip-File $infile $outfile

问题是.gz中包含的文件名与输入文件somename.gz不同,我需要接受包含的名称作为输出名称,但无法找到解决方案。如果我完全限定outfile名称(路径+名称),脚本工作。但我希望能够简单地解压缩输入文件并接受包含的文件名

还有一件事,这个函数必须在vbs文件中执行。

0 个答案:

没有答案