Benutzer mit den meisten Antworten
IF exist 4 Files, dann löschen! Einzeiler?

Frage
-
Hallo Zusammen,
gibt es eine Möglichkeit zu prüfen ob 4 bestimmte Files exestieren und dann diese zu löschen?
Ohne lange If Anweisungen zu schreiben?$strPathUser\$usrPathName.pst
Diese vier Dinge sollten auf Existenz geprüft werden und wenn vorhanden gelöscht werden. Existiert ein File nicht, soll nix gelöscht werden und eine Mail generiert werden. (Code für Mail habe ich. =)) Kann mann das kurz und knapp in einem Einzeiler verfassen? Wenn ja wie?
$strPathUser\$usrPathName.xml
$strPathUser\$usrPathName_Forwarder.txt
$strPathUser\$usrPathName + $usr_obj.employeeID + ".jpg"VG
Thomas
Antworten
-
Da musst du mir erstmal den Sinn erklären! Ist das ein Sport ?
Du kannst ja mit Test-Path True und False werte erzeugen!'C:\Temp\test.txt', 'C:\Temp\test-1.txt','C:\Temp\test-2.txt'|%{$Array=@()} {$Array+=Test-Path $_} {If($Array -contains $False){"Mindestens ein File Fehlt!"}ELSE{"Alle Files Da!"}}
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '- Als Antwort markiert Digiflex Mittwoch, 25. Juli 2012 14:14
Alle Antworten
-
Da musst du mir erstmal den Sinn erklären! Ist das ein Sport ?
Du kannst ja mit Test-Path True und False werte erzeugen!'C:\Temp\test.txt', 'C:\Temp\test-1.txt','C:\Temp\test-2.txt'|%{$Array=@()} {$Array+=Test-Path $_} {If($Array -contains $False){"Mindestens ein File Fehlt!"}ELSE{"Alle Files Da!"}}
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '- Als Antwort markiert Digiflex Mittwoch, 25. Juli 2012 14:14
-
Hallo Peter, die Frage ist natürlich berechtigt..es ist natürlich kein Sport! ^^
ich möchte einfach nur den Script für dieses Thema klein halten um die Gesamtheit des Scripts übersichtlicher zu lassen. :)
Ich werde es mal versuchen. Besten Dank erst mal!
-
Was ist mit übersichtlich gemeint?
Ein Einzeiler ist meist schwerer zu lesen als ordentlich geschriebenen Zeilen!
Ansonnsten kann ich dir da noch ein einzelnes If anbieten das ebenfalls mit Booleschen operationen Arbeitet:IF ((Test-Path 'C:\Temp\test.txt') -and (Test-Path 'C:\Temp\test-1.txt') -and (Test-Path 'C:\Temp\test-2.txt')) { "Alle DA!" } ELSE { "Nicht alle Da!" }
Logische Operatoren
Mit logischen Operatoren (-and, -or, -xor, -not, !) verbinden
Sie bedingte Anweisungen zu einer einzelnen komplexen Bedingung.
Beispielsweise können Sie den logischen -and-Operator zum Erstellen
eines Objektfilters mit zwei unterschiedlichen Bedingungen verwenden.Siehe auch:
Get-Help about_Logical_OperatorsPlease click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' ' -
Funktioniert perfekt! Danke! :)
Na diese Zeile dient nur als PlausiCheck mehr nicht. Aber du hast recht deine zweite Version ist besser!Bzw. übersichtlicher.
Nun habe ich folgendes Problem:Ich erstelle zur Archivierung eines User, die Mailbox als .pst
New-MailboxExportRequest -Mailbox $i.Name -FilePath $user_mbxFile
Dann frage ich mit deinem Script ab ob die Datei geschrieben wurde. Wenn ja soll er die Mailbox removen.
Leider wartet der Script nicht bis der Export fertig ist, sondern fährt direkt fort mit dem Script. Wie kann ich im Script warten bis der Mailbox-Export erfolgreich erstellt ist?Gruß
Thomas- Bearbeitet Digiflex Mittwoch, 25. Juli 2012 14:24
-
Okay habe was gefunden ich frage einfach in einer schleife immer wieder ab bis
Get-MailboxExportRequest TestUser |fl status
"complete" steht.
Andere Vorschläge natürlich gern erwünscht. Soweit ich weiß kann man leider nicht dem Command sagen wenn complete dann gehe im script weiter.
Gruß
Thomas -
Internet suche: New-MailboxExportRequest wait
http://www.stevieg.org/tag/new-mailboxexportrequest/
New-MailboxExportRequest scheint einen eigenen Prozess zu starten du musst dann also sehen ob der Prozess fertig ist (Get-Prozess und Start-Sleep 50 in einer schleife)
http://community.spiceworks.com/topic/131451-error-handling-with-get-mailboxexportrequest
Manage MailboxExportRequest
http://technet.microsoft.com/en-us/library/ee633479
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '