2012-03-21 33 views
0

私はいくつかのファイルを持っています&フォルダpowershellを使用してバックアップします。私は1つのバックアップにバックアップしたいファイル拡張子を保持するために配列を使用しています。その後、フォルダ全体もバックアップしています。私が作成する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を超える場合はチェックされる属性バイトを設定解除します次回の実行で削除されます(削除されます)。私は何をしたいのは、私は彼らの望むバックアップの数と一緒に配列して、一般的なバックアップ名(TxtFileBkup、FldrBkup)を格納し、その後にバックアップのその配列& NBRを使用することです

$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} }} 

次にスクリプトが実行されるときに削除されるバックアップを決定してマークします。私はその配列をファイル拡張子の配列の有無にかかわらず使用することができます。&フォルダのバックアップ(両方のバックアップセットを作成するためには1ステップとなります)。 foreachの

$bkup_counts = import-clixml bkup_counts.xml 

をして:

答えて

0

私はあなたの削除スクリプトで

$bkup_counts = @{ 
TxtFileBkup = @('File',5) 
FldrBkup = @('Folder',6) 
} 

$bkup_counts | export-clixml bkup_counts.xml 

をXMLにファイル接頭辞と保持数、およびエクスポートのハッシュテーブル、インポートを作成したいですハッシュテーブルキーを使用してgciを実行すると、そのキーを持つテーブルエントリの値として、そのタイプの望ましい保持カウントが得られます。

+0

ありがとうございました。あなたの提案を使用して、私は他のものを除いて、ちょっとした働きをしています。 –

+0

ありがとうございました。あなたの提案を使用して、私は他のものを除いて、ちょっとした働きをしています。私は2つのタイプのバックアップを持っています - FileとFolderは、偶然に私がXMLで作成しているバックアップのタイプです(txtfilebkupはテキストファイルをバックアップしています。私はそれがxmlファイルの最初と最後をつかむことができますが、バックアップは2つのエントリのためにのみ働くでしょう。私は1つのtxt、別のasc、別のxml、およびフォルダをバックアップできる場所に持っていたいと思います。 –

+0

編集されました。ハッシュテーブルの値は配列でもかまいません。したがって、それぞれに複数の値を格納できます。 – mjolinor

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タイプのセットと、拡張機能のセットを関連付ける方法を持って、その後、バックアップのファイルやフォルダのセットで、これらのバックアップの種類を関連付けることです。

例 - すべてはtxtBkupにジッパーう f1.txt f2.txt f3.asc f4.asc .... x2.xml すべてがxmlBkupにジッパーう x1.xmlジップ... .zipファイル フォルダ C:\ myfilesという.... fldrBkupにジッパー、そして前進

は、私は、バックアップの種類とし、ファイルをバックアップ、これらのスルーループにファイル拡張子のセットを関連付けることができるようにする必要がありますジップうフォルダのバックアップが必要です。

+0

あなた自身の答えを受け入れることができるので、この質問は完了したものとして記録されます.... –

関連する問題