2017-01-03 12 views
1

私がやっていることはいくつかのデータベースをバックアップすることです。プロセスの一部はそれらを圧縮して1つのファイルだけでなく、次のコードがあります。

# 0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, etc 

$blocation = 'c:\SQLBackups' 
$7zlocation = 'c:\Program Files\7-Zip\7z.exe' 
$date = Get-Date 
$daynum = [int]$date.DayOfWeek 

$month = Get-Date -Format MM 
$day = (Get-Date).AddDays(0).ToString('dd') 
$sqlfile = "*_backup_" + $date.Year + "_" + $month + "_" + $day + "_*.bak" 

cd $blocation 
& $7zlocation d ABOCH2_SQL_backup.zip *.bak 
& $7zlocation u ABOCH2_SQL_backup.zip *.bak 
if($lastExitCode -eq 0) { 
    del /q *.bak 
} 

以前の実行から.zipファイルを空にした後、新たにダンプされたデータベースとの.zipファイルを更新し、.zipファイルが正常に更新された後、次にデータベースのみを削除します。私が直面する問題は、これを実行した後、.zipファイルが新しいデータベースで更新されるということです。しかし、$lastExitCodeは機能していないので、.zipに正常に追加されたデータベースは決して削除されず、古いデータベースのバックログが蓄積してしまいます。

何か不足していますか、間違っていますか?

+3

CMD使用することができたい場合は、「$ lastExitCodeが機能していない」というあなたの主張を拡張してください - あなたはどうやったのかこの結論に来る? 7-zipの最後の呼び出し後の値は何ですか? –

+1

少なくとも更新操作の出力も表示します。また、古いアーカイブの名前を変更したり、新しいアーカイブを作成したりする代わりに、zipアーカイブからファイルを削除して追加するのはなぜですか? –

+3

また、 'del'は' remove-item'のエイリアスであり、異なる構文を使用するため、 'del/q * .bak'も失敗します。 'del.exe/q * .bak'はそれに対処する必要があります。代わりにコマンドレットを使用することを検討してください。 – Matt

答えて

2

削除操作が実際に何が失敗しているかを推測します。私はこれがどのように呼び出されているのか、あるいはおそらくエラーを抑制しているのか疑問に思います。あなたは、「デル」はRemove-Itemコマンドレットのエイリアスであることを確認するコマンドGet-Alias delを実行した場合

Remove-Item : A positional parameter cannot be found that accepts argument '*.bak'. 
At line:1 char:1 
+ del /q *.bak 
+ ~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Remove-Item], ParameterBindingException 
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.RemoveIt 
    emCommand 

:実行時にdel /q *.bakを持っているラインの線に沿って誤差を持っている必要があります。おそらくあなたの$lastexitcodeロジックは音ですか?私はそれらのファイルを削除するためにPowerShellの道に選ぶでしょう:

Remove-Item *.csv -Confirm:$false 

をそれとも、あなたが

cmd.exe /c "del /q *.bak" 
+0

ありがとうございました!私はオフィスに戻って最初の日のために適切に考えていない心にそれをチョークするつもりです...私はかなり "del/q * .bak"が働いていたと確信していましたが、おそらく私はそれをその前にコードをテストし、削除部分をテストせずに残しました。 Remove-Itemを使って、それを使ってテストして、私が探していたものを正確に作りました!この投稿の返信では、将来のより良いトラブルシューティング手順を書き留めることもできました – dimm0k

関連する問題