Powershell 使用同一脚本创建多个文件

Powershell 使用同一脚本创建多个文件,powershell,Powershell,我有一个powershell脚本,它可以归档所有不是ps1和csv文件的文件,并且可以正常工作,但是如果zip归档文件已经存在,我必须在再次运行命令之前复制或删除该归档文件,否则会出现错误,表明该文件已经存在 Get-ChildItem -Path .\* -Exclude *.ps1, *.csv | Compress-Archive -DestinationPath .\NonEssArch.zip -verbose Add-Type -AssemblyName PresentationF

我有一个powershell脚本,它可以归档所有不是ps1和csv文件的文件,并且可以正常工作,但是如果zip归档文件已经存在,我必须在再次运行命令之前复制或删除该归档文件,否则会出现错误,表明该文件已经存在

Get-ChildItem -Path .\* -Exclude *.ps1, *.csv | Compress-Archive -DestinationPath .\NonEssArch.zip -verbose

Add-Type -AssemblyName PresentationFramework

$msgBoxInput =  [System.Windows.MessageBox]::Show('Do you also want to delete these non-essential files?','Attention','YesNo','Info')

switch  ($msgBoxInput) {
  'Yes' {
  del -Path *.* -Exclude *.csv, *.ps1, *.zip
  }
  'No' {
  Exit
  }
}
我希望能够在创建归档文件后运行脚本,而不必替换现有归档文件。问题在于“-DestinationPath.\NonEssArch.zip”部分,但我在实现排序的编号系统时遇到问题

任何帮助都将不胜感激。

要“唯一化”文件名,最简单的方法是在其上添加时间戳。您可以调整粒度以适应您的情况。如果需要,可以降到毫秒。[咧嘴笑]

像这样的

$NewFileName = 'NonEssArch_{0}.zip' -f (Get-Date).ToString('yyyy-MM-dd_HH-mm-ss')
现在,那会给你

NonEssArch_2019-05-04_17-12-27.zip

最简单的方法是向文件名添加时间戳。因为你可以得到你想要的粒度(精确到毫秒),所以不可能有任何文件名冲突。[grin]类似于>>
$NewFileName='NonEssarch{0}.zip'-f(获取日期).ToString('yyyy-MM-dd_HH-MM-ss')
非常欢迎您!很高兴能帮上点忙。。。[咧嘴笑]