首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保留设置的备份文件数

保留设置的备份文件数
EN

Stack Overflow用户
提问于 2012-03-21 22:05:08
回答 2查看 942关注 0票数 0

我有一些文件和文件夹,我想用powershell备份。我使用数组来保存我想要备份到一个备份中的文件扩展名,然后我也备份了整个文件夹。我创建的压缩文件名为TxtFileBkup_yyyymmdd_hhMMss.zip和FldrBkup_yyyymmdd_hhMMss.zip。

我构建要备份的项目列表(通过扩展),如下所示:

代码语言:javascript
复制
$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,该属性在下一次运行中被选中(和删除)。

代码语言:javascript
复制
$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来确定并标记要在下次运行脚本时删除的备份。一个额外的好处是,如果我可以使用带有或不带有文件扩展名阵列&文件夹备份的阵列(所以只需一个步骤就可以创建两组备份)。

EN

回答 2

Stack Overflow用户

发布于 2012-03-21 22:40:57

我将创建一个包含文件前缀和保留计数的哈希表,并将其导出到xml

代码语言:javascript
复制
$bkup_counts = @{
TxtFileBkup = @('File',5)
FldrBkup = @('Folder',6)
}

$bkup_counts | export-clixml bkup_counts.xml

在删除脚本中,导入:

代码语言:javascript
复制
$bkup_counts = import-clixml bkup_counts.xml

然后遍历哈希表的关键字来执行gci,您已经获得了该类型所需的保留计数,即具有该关键字的表项的值。

票数 0
EN

Stack Overflow用户

发布于 2012-03-24 03:24:14

以下是我在使用您的示例代码后所拥有的内容。(谢谢,BTW)。

代码语言:javascript
复制
$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

我需要能够将一组文件扩展名与一种备份类型相关联,并遍历这些备份文件,然后继续进行文件夹备份。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9806212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档