我有一些文件和文件夹,我想用powershell备份。我使用数组来保存我想要备份到一个备份中的文件扩展名,然后我也备份了整个文件夹。我创建的压缩文件名为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
}然后,在附加步骤中单独备份该文件夹。
后来,我设置了备份文件夹中所有文件的byte属性,然后计算文件夹中与某个模式匹配的文件数量,如果超过5,我取消设置属性byte,该属性在下一次运行中被选中(和删除)。
$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来确定并标记要在下次运行脚本时删除的备份。一个额外的好处是,如果我可以使用带有或不带有文件扩展名阵列&文件夹备份的阵列(所以只需一个步骤就可以创建两组备份)。
发布于 2012-03-21 22:40:57
我将创建一个包含文件前缀和保留计数的哈希表,并将其导出到xml
$bkup_counts = @{
TxtFileBkup = @('File',5)
FldrBkup = @('Folder',6)
}
$bkup_counts | export-clixml bkup_counts.xml在删除脚本中,导入:
$bkup_counts = import-clixml bkup_counts.xml然后遍历哈希表的关键字来执行gci,您已经获得了该类型所需的保留计数,即具有该关键字的表项的值。
发布于 2012-03-24 03:24:14
以下是我在使用您的示例代码后所拥有的内容。(谢谢,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
}不过,我需要做的是,有一种方法可以将一组扩展名与一组备份类型关联起来,然后将这些备份类型与一组文件或文件夹备份关联起来。
示例- f1.txt f2.txt f3.asc f4.asc所有将压缩到txtBkup....zip x1.xml x2.xml所有将压缩到xmlBkup....zip文件夹c:\myfiles将压缩到fldrBkup....zip
我需要能够将一组文件扩展名与一种备份类型相关联,并遍历这些备份文件,然后继续进行文件夹备份。
https://stackoverflow.com/questions/9806212
复制相似问题