我有一些文件&文件夹我想使用PowerShell备份。我正在使用数组来保存我想备份到一个备份的文件扩展名,然后我也备份整个文件夹。我创建的zip文件名为TxtFileBkup_yyyymmdd_hhMMss.zip和FldrBkup_yyyymmdd_hhMMss.zip。
我构建要备份的项目列表(按扩展名),如下所示:
$extArray = @("*.txt","*.asc")
foreach ($ea in $extArray) {
$filelist += Get-ChildItem $ToBeZipped"\*" -Recurse -Include $ea |Select-Object fullname
}
foreach ($fn in $fileList) {
$fileName = $fn.FullName
create-7zip $filename $zipFolder\$DataFileOut
}
然后在另外的步骤中单独备份该文件夹。
稍后,我在备份文件夹中设置所有文件的属性字节,然后计算匹配特定模式的文件夹中的文件数,如果超过5,则取消设置检查的属性字节(并删除)在下一次运行。
$delfiles=0
$delfiles= (dir $zipFolder\TargetBackup*.zip).count-5
if ($delfiles -gt 0)
# If there are more than 5 zipped backups, we'll turn off the archive bit on them
{dir $zipFolder\TargetBackup* | sort-object -property {$_.CreationTime} |
select-object -first $delfiles |
foreach-object { attrib $_.FULLNAME -A} }}
我想要做的是将通用备份名称(TxtFileBkup,FldrBkup)与我想要的一些备份一起存储在一个数组中,然后使用该数组& nbr of backup用于确定并标记下次运行脚本时要删除的备份。如果我可以使用带有或不带有文件扩展名数组的数组,那将是一个额外的好处。文件夹备份(因此创建两组备份将是一步)。
答案 0 :(得分:0)
我创建了一个文件前缀和保留计数的哈希表,并将其导出到xml
$bkup_counts = @{
TxtFileBkup = @('File',5)
FldrBkup = @('Folder',6)
}
$bkup_counts | export-clixml bkup_counts.xml
在删除脚本中,导入:
$bkup_counts = import-clixml bkup_counts.xml
并通过哈希表键来进行gci,并且您已将该类型的所需保留计数作为具有该键的表条目的值。
答案 1 :(得分:0)
这是我使用您的示例代码后的内容。 (谢谢,BTW)。
$bkup_Counts = @{
FldrBkup = 5
txtBkup = 6
}
$type = $null
#set Backup Types from the array we just defined
foreach ($type in $bkup_Counts.Keys) {
$bkupTypeArr += $type
}
# nameConv has dt stamp of getdate,
# fArray will have filename in it FldrBkupYYYYMMDD_HHmmSS.zip and
# txtBkupYYYYMMDD_HHmmSS.zip
$type = $null
foreach ($type in $bkup_Counts.Keys) {
$fArray += $type + $nameConv
}
# Array of extensions txt, asc
foreach ($ea in $extArray) {
$filelist += Get-ChildItem $ToBeZipped"\*" -Recurse -Include $ea |Select-Object fullname
}
我需要做的是,有办法将一组扩展与一组bkup类型相关联,然后将这些备份类型与一组文件或文件夹备份相关联。
示例 - f1.txt f2.txt f3.asc f4.asc 所有将拉入txtBkup .... zip x1.xml x2.xml 所有将拉入xmlBkup .... zip 夹 c:\ myfiles将压缩到fldrBkup .... zip
我需要能够将一组文件扩展名与备份类型相关联,并通过这些备份文件循环,然后继续使用文件夹备份。