【发布时间】:2019-05-05 06:16:35
【问题描述】:
我有一个 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”部分,但我在实现排序编号系统时遇到了麻烦。
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
最简单的方法是给文件名加上时间戳。因为你可以得到你想要的粒度[精确到毫秒],所以不可能有任何文件名冲突。 [grin] 类似 >>>
$NewFileName = 'NonEssarch_{0}.zip' -f (Get-Date).ToString('yyyy-MM-dd_HH-mm-ss') -
不客气!很高兴能有所帮助... [grin]
标签: powershell