我有一个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”部分,但是我在实现某种编号系统时遇到了麻烦。
感谢您的任何帮助。
答案 0 :(得分:1)
“唯一化”文件名的最简单方法是为其添加时间戳。您可以调整粒度以适合您的情况。如果需要的话,可以精确到毫秒。 [咧嘴]
类似这样的东西
$NewFileName = 'NonEssArch_{0}.zip' -f (Get-Date).ToString('yyyy-MM-dd_HH-mm-ss')
现在,那会给你...
NonEssArch_2019-05-04_17-12-27.zip