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

Raf*_*aeu 6 powershell compress-archive

我需要使用Compress-Archivein打包一个文件夹PShell

我的文件夹结构如下:

|- C:\MyFolder
|--- Files
|------ Start.ps1
|------ Stop.ps1
|--- Manifests
|------ Start.xml
|------ Stop.xml
Run Code Online (Sandbox Code Playgroud)

当我发出这个命令时Compress-Archive -Path "C:\MyFolder" -DestinationPath "C:\MyFolder.zip"

结果是一个 .zip,它有一个名为“MyFolder”的根文件夹,而我需要的是一个 .zip,它复制 MyFolder 树,而不将 MyFolder 作为根文件夹。那可能吗?

Abd*_*P M 15

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

Compress-Archive -Path "C:\MyFolder\*" -DestinationPath "C:\MyFolder.zip"
Run Code Online (Sandbox Code Playgroud)

这也记录在这里

-小路

指定要添加到存档压缩文件中的文件的一个或多个路径。要指定多个路径并在多个位置包含文件,请使用逗号分隔路径。

该参数接受通配符。通配符允许您将目录中的所有文件添加到存档文件中。

对根目录使用通配符会影响存档的内容:

要创建包含根目录及其所有文件和子目录的存档,请在路径中指定根目录(不带通配符)。例如:-Path C:\Reference

要创建排除根目录但压缩其所有文件和子目录的存档,请使用星号 (*) 通配符。例如:-Path C:\Reference\*

要创建仅压缩根目录中文件的存档,请使用星点星 ( *.*) 通配符。根目录的子目录不包含在存档中。例如:-Path C:\Reference\*.*