压缩存档,排除包含文件夹
Posted
技术标签:
【中文标题】压缩存档,排除包含文件夹【英文标题】:Compress-Archive, exclude the containing folder 【发布时间】:2021-09-15 09:32:39 【问题描述】:我需要在PShell
中使用Compress-Archive
打包一个文件夹
我的文件夹结构如下:
|- C:\MyFolder
|--- Files
|------ Start.ps1
|------ Stop.ps1
|--- Manifests
|------ Start.xml
|------ Stop.xml
当我发出这个命令时Compress-Archive -Path "C:\MyFolder" -DestinationPath "C:\MyFolder.zip"
结果是一个 .zip,它有一个名为“MyFolder”的根文件夹,而我需要的是一个 .zip,它复制 MyFolder 的树没有将 MyFolder 作为根文件夹。这可能吗?
【问题讨论】:
【参考方案1】:Path
parameter accepts specific file names and file names with wildcards。因此,您可以传递 "C:\MyFolder\*
"(它的所有文件和子目录因此跳过根目录)
C:\MyFolder
作为 Path
参数
Compress-Archive -Path "C:\MyFolder\*" -DestinationPath "C:\MyFolder.zip"
这也是documented here,
-路径
指定要添加到存档压缩文件的文件的一个或多个路径。指定多个路径,并包含文件 在多个位置,使用逗号分隔路径。
此参数接受通配符。允许使用通配符 您可以将目录中的所有文件添加到存档文件中。
在根目录中使用通配符会影响存档的内容:
创建一个包含根目录及其所有目录的存档 文件和子目录,在Path中指定根目录 没有通配符。例如:-Path C:\Reference
创建一个 排除根目录的存档,但压缩其所有文件和 子目录,请使用星号 (*) 通配符。例如:-路径 C:\参考*
创建仅压缩文件的存档 根目录,使用星点星 (.) 通配符。子目录 的根不包含在存档中。例如:-路径 C:\参考*.*
【讨论】:
以上是关于压缩存档,排除包含文件夹的主要内容,如果未能解决你的问题,请参考以下文章