0

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

我的文件夹结构如下:

|- 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 作为根文件夹。那可能吗?

4

1 回答 1

0

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

压缩存档 -Path "C:\MyFolder\*" -DestinationPath "C:\MyFolder.zip"

这也记录在这里

-小路

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

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

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

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

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

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

于 2021-09-15T09:37:54.480 回答