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

时间:2019-05-04 16:59:36

标签: powershell

我有一个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”部分,但是我在实现某种编号系统时遇到了麻烦。

感谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

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

类似这样的东西

$NewFileName = 'NonEssArch_{0}.zip' -f (Get-Date).ToString('yyyy-MM-dd_HH-mm-ss')

现在,那会给你...

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