Powershell:未创建文件夹的 ExtractToDirectory
Powershell : ExtractToDirectory with no folder created
我有一个具有这种结构的 zip 文件:test.zip -> Mark -> Today-> *.* ( every files)
当我提取它时,结果我得到了这个:test (folder) -> Mark (folder) -> Today ->*.* ( every files)
我怎样才能得到这个结构:Today (folder) ->*.* (every files)
我的意思是,我试图避免创建前两个文件夹。
最好的办法是只提取没有文件夹的文件
function Unzip
{
param([string]$zipfile, [string]$out)
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $out)
}
unzip Test.zip $testPath
编辑:
对不起,我在这个问题上犯了一个错误。
正确的问题是:如何只提取文件或最后一个文件夹(今天)。我想知道我是否需要一个临时文件夹或者是否有一个选项,但阅读文档似乎不需要
以下是您继续只提取文件而不考虑文件夹结构的方法。
Add-Type -AssemblyName 'System.IO.Compression.FileSystem'
function Unzip {
param([string]$zipfile, [string]$out)
$Archive = [System.IO.Compression.ZipFile]::OpenRead($zipfile)
Foreach ($entry in $Archive.Entries.Where( { $_.Name.length -gt 0 })) {
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($entry, "$out$($entry.Name)")
}
$Archive.Dispose()
}
# Example
Unzip -zipfile 'Z:\_tmp\impfiles.zip' -out 'Z:\_tmp\impfiles'
当然,既然你放弃了文件夹结构,你将不得不实施——如果需要的话——一些方法来处理文件名冲突的可能性(例如,如果你有一个 Readme.txt 2 个不同的文件夹)
我有一个具有这种结构的 zip 文件:test.zip -> Mark -> Today-> *.* ( every files)
当我提取它时,结果我得到了这个:test (folder) -> Mark (folder) -> Today ->*.* ( every files)
我怎样才能得到这个结构:Today (folder) ->*.* (every files)
我的意思是,我试图避免创建前两个文件夹。
最好的办法是只提取没有文件夹的文件
function Unzip
{
param([string]$zipfile, [string]$out)
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $out)
}
unzip Test.zip $testPath
编辑: 对不起,我在这个问题上犯了一个错误。 正确的问题是:如何只提取文件或最后一个文件夹(今天)。我想知道我是否需要一个临时文件夹或者是否有一个选项,但阅读文档似乎不需要
以下是您继续只提取文件而不考虑文件夹结构的方法。
Add-Type -AssemblyName 'System.IO.Compression.FileSystem'
function Unzip {
param([string]$zipfile, [string]$out)
$Archive = [System.IO.Compression.ZipFile]::OpenRead($zipfile)
Foreach ($entry in $Archive.Entries.Where( { $_.Name.length -gt 0 })) {
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($entry, "$out$($entry.Name)")
}
$Archive.Dispose()
}
# Example
Unzip -zipfile 'Z:\_tmp\impfiles.zip' -out 'Z:\_tmp\impfiles'
当然,既然你放弃了文件夹结构,你将不得不实施——如果需要的话——一些方法来处理文件名冲突的可能性(例如,如果你有一个 Readme.txt 2 个不同的文件夹)