en-US/PSCompression.dll-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Expand-ZipEntry</command:name>
      <command:verb>Expand</command:verb>
      <command:noun>ZipEntry</command:noun>
      <maml:description>
        <maml:para>Expands Zip Archive Entries to a destination directory.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Expand-ZipEntry` cmdlet can expand Zip Archive Entries outputted by the `Get-ZipEntry` command to a destination directory. This is useful when there is a need to extract a few entries from a Zip File as opposed to expanding the whole file. Expanded entries maintain their original folder structure based on their relative zip path.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Expand-ZipEntry</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The destination directory where to extract the Zip Entries. This parameter is optional, when not used, the entries are extracted to the their relative zip path to the current directory.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>`$PWD`</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Existing files in the destination directory are overwritten when this switch is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>The cmdlet outputs the `FileInfo` and `DirectoryInfo` instances of the extracted entries when this switch is used.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The zip entries to expand. Note that this parameter is meant to be bound from pipeline however can be used manually if you want. The input object must be an instance of `ZipEntryBase` or their descendant types, `ZipEntryFile` or `ZipEntryDirectory`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ZipEntryBase[]</command:parameterValue>
          <dev:type>
            <maml:name>ZipEntryBase[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The destination directory where to extract the Zip Entries. This parameter is optional, when not used, the entries are extracted to the their relative zip path to the current directory.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>`$PWD`</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Existing files in the destination directory are overwritten when this switch is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>PassThru</maml:name>
        <maml:description>
          <maml:para>The cmdlet outputs the `FileInfo` and `DirectoryInfo` instances of the extracted entries when this switch is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The zip entries to expand. Note that this parameter is meant to be bound from pipeline however can be used manually if you want. The input object must be an instance of `ZipEntryBase` or their descendant types, `ZipEntryFile` or `ZipEntryDirectory`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ZipEntryBase[]</command:parameterValue>
        <dev:type>
          <maml:name>ZipEntryBase[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>ZipEntryBase</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pipe instances of `ZipEntryFile` to this cmdlet. These instances are produced by `Get-ZipEntry` (Get-ZipEntry.md) and [`New-ZipEntry`](New-ZipEntry.md)cmdlets.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>By default, this cmdlet produces no output.</maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>FileSystemInfo</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>The cmdlet outputs the `FileInfo` and `DirectoryInfo` instances of the extracted entries when `-PassThru` switch is used.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert />
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>Example 1: Extract all `.txt` files from a Zip Archive to the current directory</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry path\to\myZip.zip -Include *.txt | Expand-ZipEntry</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 2: Extract all `.txt` files from a Zip Archive to the a desired directory</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry path\to\myZip.zip -Include *.txt | Expand-ZipEntry -Destination path\to\myfolder</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 3: Extract all entries excluding `.txt` files to the current directory</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry path\to\myZip.zip -Exclude *.txt | Expand-ZipEntry</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 4: Extract all entries excluding `.txt` files to the current directory overwritting existing files</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry path\to\myZip.zip -Exclude *.txt | Expand-ZipEntry -Force</dev:code>
        <dev:remarks>
          <maml:para>Demonstrates how `-Force` switch works.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 5: Extract all entries excluding `.txt` files to the current directory outputting the expanded entries</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry path\to\myZip.zip -Exclude *.txt | Expand-ZipEntry -PassThru</dev:code>
        <dev:remarks>
          <maml:para>By default this cmdlet produces no output. When `-PassThru` is used, this cmdlet outputs the `FileInfo` and `DirectoryInfo` instances representing the expanded entries.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/santisq/PSCompression</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ZipEntry</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ZipEntry</command:noun>
      <maml:description>
        <maml:para>Lists Zip Archive Entries from one or more specified Zip Archive paths.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-ZipEntry` cmdlet lists entries from specified Zip paths. It has built-in functionalities to filter entries and is the main entry point for the ZipEntry cmdlets in this module.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ZipEntry</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>EntryType</maml:name>
          <maml:description>
            <maml:para>Lists entries of a specified type, `Archive` or `Directory`.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">Directory</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Archive</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">ZipEntryType</command:parameterValue>
          <dev:type>
            <maml:name>ZipEntryType</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="False" position="named" aliases="none">
          <maml:name>Exclude</maml:name>
          <maml:description>
            <maml:para>Specifies an array of one or more string patterns to be matched as the cmdlet lists entries. Any matching item is excluded from the output. Wildcard characters are accepted.</maml:para>
            <maml:para>__Inclusion and Exclusion patterns are applied to the entries relative path. Exclusions are applied after the inclusions.__</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="False" position="named" aliases="none">
          <maml:name>Include</maml:name>
          <maml:description>
            <maml:para>Specifies an array of one or more string patterns to be matched as the cmdlet lists entries. Any matching item is included in the output. Wildcard characters are accepted.</maml:para>
            <maml:para>__Inclusion and Exclusion patterns are applied to the entries relative path. Exclusions are applied after the inclusions.__</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName)" position="named" aliases="PSPath">
          <maml:name>LiteralPath</maml:name>
          <maml:description>
            <maml:para>Specifies a path to one or more Zip compressed files. Note that the value is used exactly as it's typed. No characters are interpreted as wildcards.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Get-ZipEntry</maml:name>
        <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="True (ByValue)" position="0" aliases="none">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>Specifies a path to one or more Zip compressed files. Wildcards are accepted.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>EntryType</maml:name>
          <maml:description>
            <maml:para>Lists entries of a specified type, `Archive` or `Directory`.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">Directory</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Archive</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">ZipEntryType</command:parameterValue>
          <dev:type>
            <maml:name>ZipEntryType</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="False" position="named" aliases="none">
          <maml:name>Exclude</maml:name>
          <maml:description>
            <maml:para>Specifies an array of one or more string patterns to be matched as the cmdlet lists entries. Any matching item is excluded from the output. Wildcard characters are accepted.</maml:para>
            <maml:para>__Inclusion and Exclusion patterns are applied to the entries relative path. Exclusions are applied after the inclusions.__</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="False" position="named" aliases="none">
          <maml:name>Include</maml:name>
          <maml:description>
            <maml:para>Specifies an array of one or more string patterns to be matched as the cmdlet lists entries. Any matching item is included in the output. Wildcard characters are accepted.</maml:para>
            <maml:para>__Inclusion and Exclusion patterns are applied to the entries relative path. Exclusions are applied after the inclusions.__</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>EntryType</maml:name>
        <maml:description>
          <maml:para>Lists entries of a specified type, `Archive` or `Directory`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ZipEntryType</command:parameterValue>
        <dev:type>
          <maml:name>ZipEntryType</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="False" position="named" aliases="none">
        <maml:name>Exclude</maml:name>
        <maml:description>
          <maml:para>Specifies an array of one or more string patterns to be matched as the cmdlet lists entries. Any matching item is excluded from the output. Wildcard characters are accepted.</maml:para>
          <maml:para>__Inclusion and Exclusion patterns are applied to the entries relative path. Exclusions are applied after the inclusions.__</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="False" position="named" aliases="none">
        <maml:name>Include</maml:name>
        <maml:description>
          <maml:para>Specifies an array of one or more string patterns to be matched as the cmdlet lists entries. Any matching item is included in the output. Wildcard characters are accepted.</maml:para>
          <maml:para>__Inclusion and Exclusion patterns are applied to the entries relative path. Exclusions are applied after the inclusions.__</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName)" position="named" aliases="PSPath">
        <maml:name>LiteralPath</maml:name>
        <maml:description>
          <maml:para>Specifies a path to one or more Zip compressed files. Note that the value is used exactly as it's typed. No characters are interpreted as wildcards.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="True (ByValue)" position="0" aliases="none">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>Specifies a path to one or more Zip compressed files. Wildcards are accepted.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pipe paths to this cmdlet. Output from `Get-ChildItem` or `Get-Item` can be piped to this cmdlet.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>ZipEntryDirectory</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>ZipEntryFile</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert />
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>---- Example 1: List entries for a specified Zip file path ----</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry path\to\myZip.zip</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 2: List entries from all Zip files in the current directory</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry *.zip</dev:code>
        <dev:remarks>
          <maml:para>The `-Path` parameter supports wildcards.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---- Example 3: List all `Archive` entries from a Zip file ----</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry path\to\myZip.zip -EntryType Archive</dev:code>
        <dev:remarks>
          <maml:para>The `-EntryType` parameter supports filtering by `Archive` or `Directory`.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 4: Filtering entries with `-Include` and `-Exclude` parameters</maml:title>
        <dev:code>PS ..\pwsh&gt; Get-ZipEntry .\test.zip -Include docs/en-us*
 
   Directory: docs/en-US/
 
EntryType LastWriteTime CompressedSize Size EntryName
--------- ------------- -------------- ---- ---------
Directory 5/30/2023 12:34 AM 0.00 B 0.00 B
Archive 5/30/2023 12:32 AM 1.92 KB 7.58 KB Compress-GzipArchive.md
Archive 5/30/2023 12:33 AM 1.99 KB 7.26 KB Compress-ZipArchive.md
Archive 5/30/2023 12:32 AM 1.02 KB 2.52 KB ConvertFrom-GzipString.md
Archive 5/30/2023 12:32 AM 1.53 KB 4.36 KB ConvertTo-GzipString.md
Archive 5/30/2023 12:32 AM 1.47 KB 4.77 KB Expand-GzipArchive.md
Archive 5/30/2023 12:13 PM 1.20 KB 3.89 KB Expand-ZipEntry.md
Archive 5/31/2023 10:54 AM 1.02 KB 3.29 KB Get-ZipEntry.md
Archive 5/29/2023 3:49 PM 800.00 B 2.69 KB Get-ZipEntryContent.md
Archive 5/29/2023 3:49 PM 736.00 B 1.83 KB New-ZipEntry.md
Archive 5/29/2023 3:11 PM 411.00 B 1.30 KB PSCompression.md
Archive 5/29/2023 3:49 PM 643.00 B 1.19 KB Remove-ZipEntry.md
Archive 5/29/2023 3:49 PM 842.00 B 2.88 KB Set-ZipEntryContent.md
 
PS ..\pwsh&gt; Get-ZipEntry .\test.zip -Include docs/en-us* -Exclude *Compress*, *Remove*
 
   Directory: docs/en-US/
 
EntryType LastWriteTime CompressedSize Size EntryName
--------- ------------- -------------- ---- ---------
Directory 5/30/2023 12:34 AM 0.00 B 0.00 B
Archive 5/30/2023 12:32 AM 1.02 KB 2.52 KB ConvertFrom-GzipString.md
Archive 5/30/2023 12:32 AM 1.53 KB 4.36 KB ConvertTo-GzipString.md
Archive 5/30/2023 12:32 AM 1.47 KB 4.77 KB Expand-GzipArchive.md
Archive 5/30/2023 12:13 PM 1.20 KB 3.89 KB Expand-ZipEntry.md
Archive 5/31/2023 10:54 AM 1.02 KB 3.29 KB Get-ZipEntry.md
Archive 5/29/2023 3:49 PM 800.00 B 2.69 KB Get-ZipEntryContent.md
Archive 5/29/2023 3:49 PM 736.00 B 1.83 KB New-ZipEntry.md
Archive 5/29/2023 3:49 PM 842.00 B 2.88 KB Set-ZipEntryContent.md</dev:code>
        <dev:remarks>
          <maml:para>Inclusion and Exclusion patterns are applied to the entries relative path. Exclusions are applied after the inclusions.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/santisq/PSCompression</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-ZipEntryContent</command:name>
      <command:verb>Get</command:verb>
      <command:noun>ZipEntryContent</command:noun>
      <maml:description>
        <maml:para>Gets the content of a Zip Archive Entry.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Get-ZipEntryContent` cmdlet gets the content of one or more `ZipEntryFile` instances. This cmdlet is meant to be used with `Get-ZipEntry` as your entry point. The outputted entries from `Get-ZipEntry` cmdlet can be passed through the pipeline to this cmdlet.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-ZipEntryContent</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>BufferSize</maml:name>
          <maml:description>
            <maml:para>This parameter determines the total number of bytes read into the buffer before outputting the stream of bytes. This parameter is applicable only when `-Raw` is not used. The buffer default value is 128 KiB.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>128000</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Raw</maml:name>
          <maml:description>
            <maml:para>Ignores newline characters and returns the entire contents of an entry in one string with the newlines preserved. By default, newline characters in a file are used as delimiters to separate the input into an array of strings.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>ZipEntry</maml:name>
          <maml:description>
            <maml:para>The entry or entries to get the content from. This parameter can be and is meant to be bound from pipeline however can be also used as a named parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ZipEntryFile[]</command:parameterValue>
          <dev:type>
            <maml:name>ZipEntryFile[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>AsByteStream</maml:name>
          <maml:description>
            <maml:para>Specifies that the content should be read as a stream of bytes.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Get-ZipEntryContent</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>The character encoding used to read the entry content. This parameter is applicable only when `-AsByteStream` is not used. The default encoding is `utf8NoBOM`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>utf8NoBOM</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Raw</maml:name>
          <maml:description>
            <maml:para>Ignores newline characters and returns the entire contents of an entry in one string with the newlines preserved. By default, newline characters in a file are used as delimiters to separate the input into an array of strings.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>ZipEntry</maml:name>
          <maml:description>
            <maml:para>The entry or entries to get the content from. This parameter can be and is meant to be bound from pipeline however can be also used as a named parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ZipEntryFile[]</command:parameterValue>
          <dev:type>
            <maml:name>ZipEntryFile[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>BufferSize</maml:name>
        <maml:description>
          <maml:para>This parameter determines the total number of bytes read into the buffer before outputting the stream of bytes. This parameter is applicable only when `-Raw` is not used. The buffer default value is 128 KiB.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>128000</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Encoding</maml:name>
        <maml:description>
          <maml:para>The character encoding used to read the entry content. This parameter is applicable only when `-AsByteStream` is not used. The default encoding is `utf8NoBOM`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Encoding</command:parameterValue>
        <dev:type>
          <maml:name>Encoding</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>utf8NoBOM</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Raw</maml:name>
        <maml:description>
          <maml:para>Ignores newline characters and returns the entire contents of an entry in one string with the newlines preserved. By default, newline characters in a file are used as delimiters to separate the input into an array of strings.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>ZipEntry</maml:name>
        <maml:description>
          <maml:para>The entry or entries to get the content from. This parameter can be and is meant to be bound from pipeline however can be also used as a named parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ZipEntryFile[]</command:parameterValue>
        <dev:type>
          <maml:name>ZipEntryFile[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>AsByteStream</maml:name>
        <maml:description>
          <maml:para>Specifies that the content should be read as a stream of bytes.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>ZipEntryFile</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pipe instances of `ZipEntryFile` to this cmdlet. These instances are produced by `Get-ZipEntry` (Get-ZipEntry.md) and [`New-ZipEntry`](New-ZipEntry.md)cmdlets.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>By default, this cmdlet returns the content as an array of strings, one per line. When the `-Raw` parameter is used, it returns a single string.</maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>Byte</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This cmdlet returns the content as bytes when the `-AsByteStream` parameter is used.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert />
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>------ Example 1: Get the content of a Zip Archive Entry ------</maml:title>
        <dev:code>PS ..pwsh\&gt; Get-ZipEntry .\myZip.zip -Include myrelative/entry.txt | Get-ZipEntryContent</dev:code>
        <dev:remarks>
          <maml:para>`-Include` parameter from `Get-ZipEntry` can be used to target a specific entry by passing the entry's relative path, from there the output can be piped directly to `Get-ZipEntryContent`. By default, the cmdlet streams line-by-line .</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>------ Example 2: Get raw content of a Zip Archive Entry ------</maml:title>
        <dev:code>PS ..pwsh\&gt; Get-ZipEntry .\myZip.zip -Include myrelative/entry.txt | Get-ZipEntryContent -Raw</dev:code>
        <dev:remarks>
          <maml:para>The cmdlet outputs a single multi-line string when the `-Raw` switch is used instead of line-by-line streaming.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>- Example 3: Get the bytes of a Zip Archive Entry as a Stream -</maml:title>
        <dev:code>PS ..pwsh\&gt; $bytes = Get-ZipEntry .\test.zip -Include test/helloworld.txt | Get-ZipEntryContent -AsByteStream
PS ..pwsh\&gt; $bytes
104
101
108
108
111
32
119
111
114
108
100
33
13
10
 
PS ..pwsh\&gt; [System.Text.Encoding]::UTF8.GetString($bytes)
hello world!</dev:code>
        <dev:remarks>
          <maml:para>The `-AsByteStream` switch can be useful to read non-text zip entries.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-- Example 4: Get contents of all `.md` files as byte arrays --</maml:title>
        <dev:code>PS ..pwsh\&gt; $bytes = Get-ZipEntry .\test.zip -Include *.md | Get-ZipEntryContent -AsByteStream -Raw
PS ..pwsh\&gt; $bytes[0].GetType()
 
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Byte[] System.Array
 
PS ..pwsh\&gt; $bytes[1].Length
7767</dev:code>
        <dev:remarks>
          <maml:para>When the `-Raw` and `-AsByteStream` switches are used together the cmdlet outputs `byte[]` as single objects for each zip entry.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/santisq/PSCompression</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-ZipEntry</command:name>
      <command:verb>New</command:verb>
      <command:noun>ZipEntry</command:noun>
      <maml:description>
        <maml:para>Creates Zip Archive Entries from one or more specified entry relative paths.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `New-ZipEntry` cmdlet can create one or more Zip Archive Entries from specified paths. The type of the created entries is determined by their path, for example, if a path ends with `` or `/`, the entry will be created as a `Directory` entry, otherwise it will be an `Archive` entry.</maml:para>
      <maml:para>Entry paths (arguments of the `-EntryPath` parameter) are always normalized, a few examples of how paths are normalized:</maml:para>
      <maml:para>| Input | Normalized As | | --- | --- | | `path\to\mynewentry.ext` | `path/to/mynewentry.ext` | | `\path\to\newdirectory` | `path/to/newdirectory/` | | `path\to\very/\random\/path\` | `path/to/very/random/path/` |</maml:para>
      <maml:para>The `[PSCompression.Extensions]::NormalizePath(string path)` static method is available as a public API if you would like to normalize your paths before creating new entries.</maml:para>
      <maml:para>In addition, `New-ZipEntry` can set the content of the entries that it creates from string input or by specifying a source file path.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-ZipEntry</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>Specifies the path to a Zip file where to create the entries. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. Note that the value is used exactly as it's typed. No characters are interpreted as wildcards.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>EntryPath</maml:name>
          <maml:description>
            <maml:para>Specifies the path to one or more entries to create in the destination Zip file. The Type of the created entries is determined by their path , for example, if the path ends with `` or `/`, the entry will be created as a `Directory` entry, otherwise it will be an `Archive` entry.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>CompressionLevel</maml:name>
          <maml:description>
            <maml:para>Specifies values that indicate whether a compression operation emphasizes speed or compression size. See `CompressionLevel` Enum (https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.compressionlevel)for details.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">Optimal</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Fastest</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">NoCompression</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">SmallestSize</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">CompressionLevel</command:parameterValue>
          <dev:type>
            <maml:name>CompressionLevel</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Optimal</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>The character encoding used to set the entry content. This parameter is applicable only when `-SourcePath` is not used. The default encoding is `utf8NoBOM` .</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>utf8NoBOM</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>The cmdlet prevents creating entries in a destination Zip archive if an entry with the same relative path already exists. You can use the `-Force` parameter to overwrite them.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The string content that will be set to the created entries. You can also pipe a value to `New-ZipEntry`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>New-ZipEntry</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>Specifies the path to a Zip file where to create the entries. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. Note that the value is used exactly as it's typed. No characters are interpreted as wildcards.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>EntryPath</maml:name>
          <maml:description>
            <maml:para>Specifies the path to one or more entries to create in the destination Zip file. The Type of the created entries is determined by their path , for example, if the path ends with `` or `/`, the entry will be created as a `Directory` entry, otherwise it will be an `Archive` entry.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>SourcePath</maml:name>
          <maml:description>
            <maml:para>The path to the file to be archived. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>CompressionLevel</maml:name>
          <maml:description>
            <maml:para>Specifies values that indicate whether a compression operation emphasizes speed or compression size. See `CompressionLevel` Enum (https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.compressionlevel)for details.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">Optimal</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Fastest</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">NoCompression</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">SmallestSize</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">CompressionLevel</command:parameterValue>
          <dev:type>
            <maml:name>CompressionLevel</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Optimal</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>The cmdlet prevents creating entries in a destination Zip archive if an entry with the same relative path already exists. You can use the `-Force` parameter to overwrite them.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>CompressionLevel</maml:name>
        <maml:description>
          <maml:para>Specifies values that indicate whether a compression operation emphasizes speed or compression size. See `CompressionLevel` Enum (https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.compressionlevel)for details.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">CompressionLevel</command:parameterValue>
        <dev:type>
          <maml:name>CompressionLevel</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Optimal</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>Specifies the path to a Zip file where to create the entries. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. Note that the value is used exactly as it's typed. No characters are interpreted as wildcards.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Encoding</maml:name>
        <maml:description>
          <maml:para>The character encoding used to set the entry content. This parameter is applicable only when `-SourcePath` is not used. The default encoding is `utf8NoBOM` .</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Encoding</command:parameterValue>
        <dev:type>
          <maml:name>Encoding</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>utf8NoBOM</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>EntryPath</maml:name>
        <maml:description>
          <maml:para>Specifies the path to one or more entries to create in the destination Zip file. The Type of the created entries is determined by their path , for example, if the path ends with `` or `/`, the entry will be created as a `Directory` entry, otherwise it will be an `Archive` entry.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>The cmdlet prevents creating entries in a destination Zip archive if an entry with the same relative path already exists. You can use the `-Force` parameter to overwrite them.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>SourcePath</maml:name>
        <maml:description>
          <maml:para>The path to the file to be archived. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>Value</maml:name>
        <maml:description>
          <maml:para>The string content that will be set to the created entries. You can also pipe a value to `New-ZipEntry`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pipe a value for the new zip entry to this cmdlet.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>ZipEntryDirectory</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>ZipEntryFile</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert />
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------------- Example 1: Create empty entries ---------------</maml:title>
        <dev:code>PS ..\pwsh&gt; New-ZipEntry .\test.zip -EntryPath test\entry, newfolder\
 
   Directory: newfolder/
 
EntryType LastWriteTime CompressedSize Size EntryName
--------- ------------- -------------- ---- ---------
Directory 6/11/2023 6:55 PM 0.00 B 0.00 B
 
   Directory: test/
 
EntryType LastWriteTime CompressedSize Size EntryName
--------- ------------- -------------- ---- ---------
Archive 6/11/2023 6:55 PM 0.00 B 0.00 B entry</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-- Example 2: Create entries with content from input strings --</maml:title>
        <dev:code>PS ..\pwsh&gt; 'hello', 'world', '!' | New-ZipEntry .\test.zip -EntryPath test\entry, newfolder\
New-ZipEntry: An entry with path 'test/entry' already exists in 'path\to\test.zip'.
New-ZipEntry: An entry with path 'newfolder/' already exists in 'path\to\test.zip'.
 
PS ..\pwsh&gt; 'hello', 'world', '!' | New-ZipEntry .\test.zip -EntryPath test\entry, newfolder\ -Force
PS ..\pwsh&gt; Get-ZipEntry .\test.zip -Include test/entry | Get-ZipEntryContent
hello
world
!</dev:code>
        <dev:remarks>
          <maml:para>The cmdlet prevents creating entries in a destination Zip archive if an entry with the same relative path already exists. You can use the `-Force` parameter to overwrite them.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 3: Create entries with content from a source file path</maml:title>
        <dev:code>PS ..\pwsh&gt; $file = 'hello world!' | New-Item mytestfile.txt
PS ..\pwsh&gt; New-ZipEntry .\test.zip -EntryPath newentry.txt -SourcePath $file.FullName</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----- Example 4: Archive all files in a specified location -----</maml:title>
        <dev:code>PS ..\pwsh&gt; $files = Get-ChildItem -File -Recurse
PS ..\pwsh&gt; $files | ForEach-Object {
   New-ZipEntry .\test.zip -EntryPath $_.FullName.Remove(0, $pwd.Path.Length) -SourcePath $_.FullName
}</dev:code>
        <dev:remarks>
          <maml:para>In this example `$ .FullName.Remove(0, $pwd.Path.Length)` is used to get the file paths relative to the current location. Using `-EntryPath $ .FullName` without getting the relative paths would work too however this would cause issues while attempting to extract the files later.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>Example 5: Archive all `.txt` files in a specified location using a specified encoding</maml:title>
        <dev:code>PS ..\pwsh&gt; $files = Get-ChildItem -File -Recurse -Filter *.txt
PS ..\pwsh&gt; $files | ForEach-Object {
   $_ | Get-Content -Encoding ascii |
      New-ZipEntry .\test.zip -EntryPath $_.FullName.Remove(0, $pwd.Path.Length) -Encoding ascii
}</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/santisq/PSCompression</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-ZipEntry</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>ZipEntry</command:noun>
      <maml:description>
        <maml:para>Removes Zip Archive Entries from one or more Zip Archives.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Remove-ZipEntry` cmdlet can remove Zip Archive Entries from one or more Zip Archives. This cmdlet takes input from and is intended to be used in combination with the `Get-ZipEntry` cmdlet.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-ZipEntry</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The entries that should be removed. This parameter can be and is meant to be bound from pipeline however can be also used as a named parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ZipEntryBase[]</command:parameterValue>
          <dev:type>
            <maml:name>ZipEntryBase[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf">
          <maml:name>Confirm</maml:name>
          <maml:description>
            <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi">
          <maml:name>WhatIf</maml:name>
          <maml:description>
            <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The entries that should be removed. This parameter can be and is meant to be bound from pipeline however can be also used as a named parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ZipEntryBase[]</command:parameterValue>
        <dev:type>
          <maml:name>ZipEntryBase[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="cf">
        <maml:name>Confirm</maml:name>
        <maml:description>
          <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="wi">
        <maml:name>WhatIf</maml:name>
        <maml:description>
          <maml:para>Shows what would happen if the cmdlet runs. The cmdlet is not run.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>ZipEntryBase</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pipe instances of `ZipEntryFile` and `ZipEntryDirectory` to this cmdlet. These instances are produced by `Get-ZipEntry` (Get-ZipEntry.md) and [`New-ZipEntry`](New-ZipEntry.md)cmdlets.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This cmdlet produces no output.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert />
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>- Example 1: Remove all Zip Archive Entries from a Zip Archive -</maml:title>
        <dev:code>PS ..pwsh\&gt; Get-ZipEntry .\myZip.zip | Remove-ZipEntry</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>--- Example 2: Remove all `.txt` Entries from a Zip Archive ---</maml:title>
        <dev:code>PS ..pwsh\&gt; Get-ZipEntry .\myZip.zip -Include *.txt | Remove-ZipEntry</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-- Example 3: Prompt for confirmation before removing entries --</maml:title>
        <dev:code>PS ..pwsh\&gt; Get-ZipEntry .\myZip.zip -Include *.txt | Remove-ZipEntry -Confirm
 
Confirm
Are you sure you want to perform this action?
Performing the operation "Remove" on target "test/helloworld.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):</dev:code>
        <dev:remarks>
          <maml:para>This cmdlet supports `ShouldProcess` (https://learn.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-shouldprocess?view=powershell-7.3), you can prompt for confirmation before removing entries with `-Confirm` or check what the cmdlet would do without performing any action with `-WhatIf`.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/santisq/PSCompression</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Set-ZipEntryContent</command:name>
      <command:verb>Set</command:verb>
      <command:noun>ZipEntryContent</command:noun>
      <maml:description>
        <maml:para>Writes or appends content to an existing Zip Archive Entry.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The `Set-ZipEntryContent` cmdlet can write or append content to a Zip Archive Entry. By default, this cmdlet replaces the existing content of a Zip Archive Entry, if you need to append content you can use the `-Append` switch. This cmdlet also supports writing or appending raw bytes while using the `-AsByteStream` switch. To send content to `Set-ZipEntryContent` you can use the `-Value` parameter on the command line or send content through the pipeline.</maml:para>
      <maml:para>If you need to create a new Zip Archive Entry you can use the `New-ZipEntry` cmdlet (./New-ZipEntry.md).</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Set-ZipEntryContent</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>SourceEntry</maml:name>
          <maml:description>
            <maml:para>Specifies the zip archive entry that receives the content. `ZipEntryFile` instances can be obtained using `Get-ZipEntry` or `New-ZipEntry` cmdlets.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ZipEntryFile</command:parameterValue>
          <dev:type>
            <maml:name>ZipEntryFile</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Append</maml:name>
          <maml:description>
            <maml:para>Appends the content to the zip entry instead of overwriting it.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>AsByteStream</maml:name>
          <maml:description>
            <maml:para>Specifies that the content should be written as a stream of bytes.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>BufferSize</maml:name>
          <maml:description>
            <maml:para>For efficiency purposes this cmdlet buffers bytes before writing them to the Zip Archive Entry. This parameter determines how many bytes are buffered before being written to the stream. This parameter is applicable only when `-AsByteStream` is used. The buffer default value is 128 KiB.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>128000</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>Outputs the object representing the updated zip archive entry. By default, this cmdlet does not generate any output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>Specifies the new content for the zip entry.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object[]</command:parameterValue>
          <dev:type>
            <maml:name>Object[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Set-ZipEntryContent</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
          <maml:name>SourceEntry</maml:name>
          <maml:description>
            <maml:para>Specifies the zip archive entry that receives the content. `ZipEntryFile` instances can be obtained using `Get-ZipEntry` or `New-ZipEntry` cmdlets.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ZipEntryFile</command:parameterValue>
          <dev:type>
            <maml:name>ZipEntryFile</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Append</maml:name>
          <maml:description>
            <maml:para>Appends the content to the zip entry instead of overwriting it.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>The character encoding used to read the entry content. This parameter is applicable only when `-AsByteStream` is not used. The default encoding is `utf8NoBOM`.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>utf8NoBOM</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>PassThru</maml:name>
          <maml:description>
            <maml:para>Outputs the object representing the updated zip archive entry. By default, this cmdlet does not generate any output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>Specifies the new content for the zip entry.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Object[]</command:parameterValue>
          <dev:type>
            <maml:name>Object[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Append</maml:name>
        <maml:description>
          <maml:para>Appends the content to the zip entry instead of overwriting it.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>AsByteStream</maml:name>
        <maml:description>
          <maml:para>Specifies that the content should be written as a stream of bytes.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>BufferSize</maml:name>
        <maml:description>
          <maml:para>For efficiency purposes this cmdlet buffers bytes before writing them to the Zip Archive Entry. This parameter determines how many bytes are buffered before being written to the stream. This parameter is applicable only when `-AsByteStream` is used. The buffer default value is 128 KiB.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>128000</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Encoding</maml:name>
        <maml:description>
          <maml:para>The character encoding used to read the entry content. This parameter is applicable only when `-AsByteStream` is not used. The default encoding is `utf8NoBOM`.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Encoding</command:parameterValue>
        <dev:type>
          <maml:name>Encoding</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>utf8NoBOM</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>PassThru</maml:name>
        <maml:description>
          <maml:para>Outputs the object representing the updated zip archive entry. By default, this cmdlet does not generate any output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="0" aliases="none">
        <maml:name>SourceEntry</maml:name>
        <maml:description>
          <maml:para>Specifies the zip archive entry that receives the content. `ZipEntryFile` instances can be obtained using `Get-ZipEntry` or `New-ZipEntry` cmdlets.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ZipEntryFile</command:parameterValue>
        <dev:type>
          <maml:name>ZipEntryFile</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="named" aliases="none">
        <maml:name>Value</maml:name>
        <maml:description>
          <maml:para>Specifies the new content for the zip entry.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Object[]</command:parameterValue>
        <dev:type>
          <maml:name>Object[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>Object</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pipe strings or bytes to this cmdlet.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This cmdlet produces no output by default .</maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>ZipEntryFile</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This cmdlet outputs the updated entry when the `-PassThru` switch is used.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert />
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>----- Example 1: Write new content to a Zip Archive Entry -----</maml:title>
        <dev:code>PS ..pwsh\&gt; $entry = New-ZipEntry .\test.zip -EntryPath test\helloworld.txt
PS ..pwsh\&gt; 'hello', 'world', '!' | Set-ZipEntryContent $entry
PS ..pwsh\&gt; $entry | Get-ZipEntryContent
hello
world
!</dev:code>
        <dev:remarks>
          <maml:para>You can send content through the pipeline or using the `-Value` parameter as shown in the next example.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>------- Example 2: Append content to a Zip Archive Entry -------</maml:title>
        <dev:code>PS ..pwsh\&gt; Set-ZipEntryContent $entry -Value 'hello', 'world', '!' -Append
PS ..pwsh\&gt; $entry | Get-ZipEntryContent
hello
world
!
hello
world
!</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>------ Example 3: Write raw bytes to a Zip Archive Entry ------</maml:title>
        <dev:code>PS ..pwsh\&gt; $entry = Get-ZipEntry .\test.zip -Include test/helloworld.txt
PS ..pwsh\&gt; $bytes = [System.Text.Encoding]::UTF8.GetBytes('hello world!')
PS ..pwsh\&gt; $bytes | Set-ZipEntryContent $entry -AsByteStream
PS ..pwsh\&gt; $entry | Get-ZipEntryContent
hello world!</dev:code>
        <dev:remarks>
          <maml:para>The cmdlet supports writing and appending raw bytes while using the `-AsByteStream` switch.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>------ Example 4: Append raw bytes to a Zip Archive Entry ------</maml:title>
        <dev:code>PS ..pwsh\&gt; $bytes | Set-ZipEntryContent $entry -AsByteStream -Append
PS ..pwsh\&gt; $entry | Get-ZipEntryContent
hello world!hello world!</dev:code>
        <dev:remarks>
          <maml:para>Using the same byte array in the previous example, we can append bytes to the entry stream.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/santisq/PSCompression</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>