我正在尝试创建一个Zip文件,其中包含该目录中的所有内容(文件和文件夹)并保留目录结构。
通过浏览网络,我发现很多人都有这个问题。为了方便起见,我安装了pscx
中包含CmdLet Write-Zip
的模块。
文件夹结构
- S:\TopFolder
- S:\TopFolder\Folder1
- S:\TopFolder\Folder1\SubFolder1
- S:\TopFolder\Folder1\SubFolder1\Stuff1.txt
- S:\TopFolder\Folder2
- S:\TopFolder\Folder2\SubFolder2
- S:\TopFolder\Folder2\SubFolder2\Stuff2.txt
经过测试的代码
$Test = Get-ChildItem -Recurse 'S:\TopFolder\*'
Write-Zip -Path $Test -OutputPath 'S:\Zippie.zip' -IncludeEmptyDirectories
$Test = Get-ChildItem -Recurse 'S:\TopFolder'
Write-Zip -Path $Test -OutputPath 'S:\Zippie.zip' -IncludeEmptyDirectories
导致'Zippie.zip'
SubFolder1
SubFolder1\Stuff1.txt
SubFolder2
SubFolder2\Stuff2.txt
正如您所看到的那样,由于Folder1
并且Folder2
丢失,因此不能保持正确的文件夹结构。有什么明显的东西我在这里不见了吗?因为此问题已报告为fixed and verified。
感谢您的帮助。
答案 0 :(得分:4)
在PowerShell.org获得Dave Wyatt的帮助之后,现在已经修好了。
正确的语法似乎是:
Get-ChildItem -Recurse 'S:\TopFolder' |
Write-Zip -OutputPath 'S:\Test\Zippie.zip' -IncludeEmptyDirectories -EntryPathRoot 'S:\TopFolder'