powershell 压缩-存档,排除包含文件夹

vkc1a9a2  于 12个月前  发布在  Shell
关注(0)|答案(1)|浏览(123)

我需要在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作为根文件夹。这可能吗?

mmvthczy

mmvthczy1#

Path参数接受特定的文件名和带有通配符的文件名。因此,您可以传递"C:\MyFolder\*“(其所有文件和子目录 * 因此跳过根目录 *),而不是C:\MyFolder作为Path参数。

Compress-Archive -Path "C:\MyFolder\*" -DestinationPath "C:\MyFolder.zip"

字符串
这里也有记录,

-路径

指定要添加到存档压缩文件中的文件的路径。若要指定多个路径并包括多个位置中的文件,请使用逗号分隔路径。
此参数接受通配符。通配符允许您将目录中的所有文件添加到存档文件中。
对根目录使用通配符会影响归档文件的内容:
要创建包含根目录及其所有文件和子目录的归档文件,请在路径中指定不带通配符的根目录。例如:-Path C:\Reference

若要创建不包括根目录但压缩其所有文件和子目录的归档文件,请使用星号(*)#。例如:-Path C:\Reference\*

要创建仅压缩根目录中的文件的存档,请使用star-dot-star(*.*)命令。存档中不包括根目录的子目录。例如:-Path C:\Reference\*.*

相关问题