我有一个如下所示的文件夹结构:
-Daily Logs
-Script1Logs
-AnotherScriptLogs
-ThirdScriptLogs
Run Code Online (Sandbox Code Playgroud)
我想压缩"每日日志"下面的所有文件夹,并保留相同的文件夹结构.
有没有办法一次性压缩文件夹而不单独检查每个文件夹?此外,zip文件是否只包含上面显示的文件结构而不是日志文件夹的整个路径?
这是我用来压缩Daily Logs文件夹的内容,但它不压缩子文件夹,它包含每日日志文件夹的完整路径,作为zip文件中文件夹结构的一部分.
If (!(Test-Path $ARCHIVELOGFOLDER\$ARCHIVELOGFILE)) {
Write-Zip $file.FullName $ARCHIVELOGFOLDER\$ARCHIVELOGFILE
Write-Zip -Path $files -OutputPath $ArchiveFile -Append -FlattenPaths -IncludeEmptyDirectories -Quiet -Level 9
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个包含该目录(文件和文件夹)中的所有内容并保留目录结构的 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
Run Code Online (Sandbox Code Playgroud)
测试代码
$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
Run Code Online (Sandbox Code Playgroud)
结果是“Zippie.zip”
SubFolder1
SubFolder1\Stuff1.txt
SubFolder2
SubFolder2\Stuff2.txt
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它没有坚持正确的文件夹结构,Folder1并且Folder2丢失了。有什么明显的我在这里失踪了吗?因为此问题已报告为已修复并已验证。
感谢您的帮助。