Benutzer mit den meisten Antworten
Pfad und Datei anlegen wenn nicht vorhanden

Frage
-
Hallo,
ich beschäftige mich seit kurzem mit Powershell und habe gleich mal eine Frage.
Damit ich Aktionen in ein Log-File schreiben kann, möchte ich eine Funktion schreiben die mir den evtl fehlenden Pfade erstellt. Weiter muss ich testen ob die Log-Datei besteht um Text anzufügen oder neu erstellen wenn diese noch nicht existiert.
Habe dann folgende Funktion geschrieben, aber ich bekomme die Pfade angeleg, allerdings wird auch der Filename als Pfad angelegt.
Jetzt würde ich gerne wissen ob ich total falsch liege und ob es für diesen Zweck eine wesentlich bessere Vorgehensweise gibt, ich bin wohl auf dem falschen Weg...
function write-log { param ( [string] $filename, [array] $text, [switch] $passtrue = $false ) # Array auflösen und zu einer Text-Zeile binden $Text = $Text -join (" ") # Datum und Zeit für Log-Eintrag $currentTimeStamp = Get-Date -Format "dd.MM.yyyy HH:mm" # Log-Pfad und -Datei erstellen wenn noch nicht vorhanden if (!(Test-Path -path $filename -ErrorAction SilentlyContinue )) { # Pfad anlegen wenn nicht vorhanden if (!(Test-Path -Path $filename)) { New-Item -Path $filename -ItemType Directory -ErrorAction SilentlyContinue # | Out-Null } # Datei anlegen wenn nicht vorhanden if (!(Test-Path $filename)) { New-Item $filename -ItemType File -ErrorAction SilentlyContinue } # Eintrag hinzufügen Add-Content $filename -Value $text } }
Viele Grüsse,
Maximilian
Antworten
-
Ich nehm mal an das in $filename sowas steht wie C:\Logs\logfile.txt , das ist nicht richtig, du musst den Pfad also die Ordner und die Datei gesondert anlegen.
Ungetestet:
Text dann wie folgt einfügen:
Add-Content $filepath\$filename "Text"
also erst:if (!(Test-Path -Path $filepath)) { New-Item -Path $filepath -ItemType Directory -ErrorAction SilentlyContinue # | Out-Null
dann
if (!(Test-Path $filepath\$filename)) { New-Item $filename -ItemType File -ErrorAction SilentlyContinueDie
freundliche Grüße Thomas
- Bearbeitet Thomas Proehl Samstag, 7. Dezember 2013 15:25
- Als Antwort vorgeschlagen Alex Pitulice Mittwoch, 11. Dezember 2013 16:06
- Als Antwort markiert Alex Pitulice Freitag, 13. Dezember 2013 20:17
Alle Antworten
-
Ich nehm mal an das in $filename sowas steht wie C:\Logs\logfile.txt , das ist nicht richtig, du musst den Pfad also die Ordner und die Datei gesondert anlegen.
Ungetestet:
Text dann wie folgt einfügen:
Add-Content $filepath\$filename "Text"
also erst:if (!(Test-Path -Path $filepath)) { New-Item -Path $filepath -ItemType Directory -ErrorAction SilentlyContinue # | Out-Null
dann
if (!(Test-Path $filepath\$filename)) { New-Item $filename -ItemType File -ErrorAction SilentlyContinueDie
freundliche Grüße Thomas
- Bearbeitet Thomas Proehl Samstag, 7. Dezember 2013 15:25
- Als Antwort vorgeschlagen Alex Pitulice Mittwoch, 11. Dezember 2013 16:06
- Als Antwort markiert Alex Pitulice Freitag, 13. Dezember 2013 20:17
-
Hallo Maximilian,
bist Du weitergekommen?
Gruss,Alex
Alex Pitulice, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.