Ich möchte 3 Wiederholungen zum folgenden Code hinzufügen, der ein Verzeichnis von einem USB auf eine Maschine kopiert und nach der Kopie prüft, ob zwei Verzeichnisse gleich sind. Wenn sie nach 3 Wiederholungen nicht gleich sind, möchte ich den vorherigen Konfigurationsordner wiederherstellen.Powershell-Schleife erneut versuchen
Ich habe Probleme mit, wie die Wiederholungen zu implementieren
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
if (Test-Path "D:\Upgrade\CONFIG") { $src_dir = "D:\Upgrade\CONFIG" }
elseif (Test-Path "F:\Upgrade\CONFIG") { $src_dir = "F:\Upgrade\CONFIG" }
elseif (Test-Path "G:\Upgrade\CONFIG") { $src_dir = "G:\Upgrade\CONFIG" }
else { $src_dir = "E:\Upgrade\CONFIG" }
$dest_dir = "C:\TEST\CONFIG"
$date_str = Get-Date -UFormat %d%b%Y
$time_str = Get-Date -UFormat %H%M%S
$archive_dir = "$dest_dir" + "." + "$date_str" + "." + "$time_str"
if (Test-Path $src_dir) { Ren "$dest_dir" "$archive_dir" -verbose; Copy-Item "$src_dir" "$dest_dir" -recurse -verbose }
else { [System.Windows.Forms.MessageBox]::Show("$src_dir found, could not complete !!!") }
$currentConfig = Get-ChildItem -Recurse $dest_dir | Where-Object { -not $_.PsIsContainer }
# NEED HELP WITH ADDING RETRIES HERE
$currentConfig | ForEach-Object {
# Check if the file, from $dest_dir, exists with the same path under $src_dir
If (Test-Path ($_.FullName.Replace($dest_dir, $src_dir))) {
# Compare the contents of the two files...
If (Compare-Object (Get-Content $_.FullName) (Get-Content $_.FullName.Replace($dest_dir, $src_dir))) {
# List the paths of the files containing diffs
$_.FullName
$_.FullName.Replace($dest_dir, $src_dir)
}
}
}
so in meinem Beispiel würde ich den Zähler dekrementieren, wenn die Verzeichnisse nicht gleich sind, und brechen, wenn sie gleich sind. Ist es das oder brauche ich eine andere if-Anweisung? – user1984300
Sie würden im Grunde die Schleife laufen lassen, tun Sie die Arbeit, die Sie tun möchten, und wenn es nicht richtig gemacht wird, reduzieren Sie die Zahl um 1. Wenn die Arbeit zu Ihrer Zufriedenheit abgeschlossen ist, können Sie Break früher brechen . –