我正在使用我发现的脚本本地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文件中执行。