如何让Compress-Archive
仅压缩子文件夹结构?因为它现在是脚本本身包含在.zip中。或者可以过滤出来吗?
我得到的代码如下:
if (!($PSScriptRoot)) { Split-Path $MyInvocation.MyCommand.Path -Parent }
$destination = Split-Path $MyInvocation.MyCommand.Path -Parent
$source = (Get-ChildItem $PSScriptRoot)
$date = Get-Date -UFormat "%Y-%m-%d"
$zipfile = $destination + "\createdOn" + $date + ".zip"
#Check if file exists
if ([System.IO.File]::Exists($zipfile))
{
Clear-Host
Write-Host "File created: " $zipfile
Compress-Archive -DestinationPath $zipfile -Force -Path $source -CompressionLevel Optimal
}
else
{
Clear-Host
Write-Host "File created: " $zipfile
Compress-Archive -DestinationPath $zipfile -Force -Path $source -CompressionLevel Optimal
}
答案 0 :(得分:1)
尝试:
$source = (Get-ChildItem $PSScriptRoot -exclude $MyInvocation.MyCommand)
答案 1 :(得分:1)
如果将$source
设置为$PSScriptRoot
(脚本的父文件夹)的子项,然后从这些项创建存档,为什么生成的存档 不 包含脚本,该脚本是该文件夹的子项之一?
从$source
中删除脚本文件,以避免将其包含在存档中:
$source = Get-ChildItem $PSScriptRoot |
Where-Object { $_.FullName -ne $PSCommandPath }