Benötige Hilfe für PowerShell-Aufgabe
Hallo zusammen,
Ich habe ein paar Aufgaben über PowerShell bekommen. Hier unten ist die Aufgabe :
Ordner erstellen
Ziel des Programms: Es wird ein Ordner erstellt
Rahmenbedingungen: 1. Der User wird aufgefordert, einen Namen für den Ordner einzugeben. Das soll so oft wiederholt werden, bis effektiv ein
Name eingegeben wurde
2. Der User wird aufgefordert, einen Speicherpfad für den Ordner einzugeben
3. Wird kein oder ein falscher Pfad angegeben, wird standardmässig das aktuelle Verzeichnis als Speicherpfad verwendet
4. Standardausgaben von Befehlen sollen nicht angezeigt werden. Stattdessen sollen dort wo sinnvoll benutzerdefinierte
Ausgaben erfolgen
Zielüberprüfung: Der Ordner heisst wie gewünscht und befindet sich am definierten Speicherort. Das Programm wird fehlerfrei ausgeführt und
kann nicht zum Absturz gebracht werden. Es werden benutzerdefinierte Meldungen ausgegeben
Ich habe die Aufgabe so gelöst :
Kann jemand schauen, ob ich richtig gemacht habe oder nicht.
Vielen Dank
lionnn
Ich habe ein paar Aufgaben über PowerShell bekommen. Hier unten ist die Aufgabe :
Ordner erstellen
Ziel des Programms: Es wird ein Ordner erstellt
Rahmenbedingungen: 1. Der User wird aufgefordert, einen Namen für den Ordner einzugeben. Das soll so oft wiederholt werden, bis effektiv ein
Name eingegeben wurde
2. Der User wird aufgefordert, einen Speicherpfad für den Ordner einzugeben
3. Wird kein oder ein falscher Pfad angegeben, wird standardmässig das aktuelle Verzeichnis als Speicherpfad verwendet
4. Standardausgaben von Befehlen sollen nicht angezeigt werden. Stattdessen sollen dort wo sinnvoll benutzerdefinierte
Ausgaben erfolgen
Zielüberprüfung: Der Ordner heisst wie gewünscht und befindet sich am definierten Speicherort. Das Programm wird fehlerfrei ausgeführt und
kann nicht zum Absturz gebracht werden. Es werden benutzerdefinierte Meldungen ausgegeben
Ich habe die Aufgabe so gelöst :
Kann jemand schauen, ob ich richtig gemacht habe oder nicht.
Vielen Dank
lionnn
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1362764217
Url: https://administrator.de/forum/benoetige-hilfe-fuer-powershell-aufgabe-1362764217.html
Ausgedruckt am: 21.04.2025 um 19:04 Uhr
6 Kommentare
Neuester Kommentar

ob ich richtig gemacht habe oder nicht.
Nö. Dringend nochmal aufmerksam die Aufgabenstellung und Bedingungen alle durchlesen! Davon wurden so ca. 90% nicht erfüllt. Hausaufgaben sind dazu da das man sie nicht von einem Forum lösen lässt sondern um sich selbst damit intensiv zu beschäftigen und selbst eine Lösung zu erarbeiten!Rahmenbedingungen: 1. Der User wird aufgefordert, einen Namen für den Ordner einzugeben. Das soll so oft wiederholt werden, bis effektiv ein Name eingegeben wurde
Fehlt.Stichwort Read-Host und Schleifen in Powershell
2. Der User wird aufgefordert, einen Speicherpfad für den Ordner einzugeben
Fehlt.Stichwort Read-Host
3. Wird kein oder ein falscher Pfad angegeben, wird standardmässig das aktuelle Verzeichnis als Speicherpfad verwendet
Fehlt.Stichwort Test-Path
4. Standardausgaben von Befehlen sollen nicht angezeigt werden. Stattdessen sollen dort wo sinnvoll benutzerdefinierte Ausgaben erfolgen
Fehlt.Stichwort -ErrorAction SilentlyContinue oder auch Try-Catch und out-null
Zielüberprüfung: Der Ordner heisst wie gewünscht und befindet sich am definierten Speicherort. Das Programm wird fehlerfrei ausgeführt und kann nicht zum Absturz gebracht werden. Es werden benutzerdefinierte Meldungen ausgegeben
Fehlt.Stichwort write-host
Für Powershell-Anfänger empfiehlt sich folgende Seite
Powershell - Leitfaden für Anfänger
Zitat von @lionnn:
Kann jemand schauen, ob ich richtig gemacht habe oder nicht.
Nein, alle Aufgabenpunkte wurden nicht erfüllt.
Moin,
Stimmt. Es fehlt die Fehlerüberprüfung mittels Regex, ob der User denn einen gültigen Namen eingegeben hat. Anders ausgedrückt: Eine Regex, die prüft, ob verbotene Zeichen in der Eingabe enthalten sind. Sonst stürzt das Programm mit einer Fehlermeldung ab.
Write-host ist Pfui.
Write-output und write-error sind die richtige Wahl.
Liebe Grüße
Erik
Zitat von @149569:
Zielüberprüfung: Der Ordner heisst wie gewünscht und befindet sich am definierten Speicherort. Das Programm wird fehlerfrei ausgeführt und kann nicht zum Absturz gebracht werden. Es werden benutzerdefinierte Meldungen ausgegeben
Fehlt.Stimmt. Es fehlt die Fehlerüberprüfung mittels Regex, ob der User denn einen gültigen Namen eingegeben hat. Anders ausgedrückt: Eine Regex, die prüft, ob verbotene Zeichen in der Eingabe enthalten sind. Sonst stürzt das Programm mit einer Fehlermeldung ab.
Stichwort write-host
Write-host ist Pfui.
Liebe Grüße
Erik

Kommt wie immer darauf an! Write-Output braucht man nur wenn man etwas an eine Variable oder aus einer Funktion zurückgeben möchte, Write-Error wenn man einen benutzerdefinierten Fehler generieren möchte (glaube so weit ist der TO dann doch noch nicht
). Write-Host halt wenn es nur einfache Konsolen-Ausgaben ohne viel Kladeradatsch oder Datenrückgabe sein soll. Auf die Definition und Umsetzung kommt es halt an was die richtige Wahl ist.
Moin,
Der wesentliche Unterschied ist, dass write-output ein Objekt zurückgibt, welches man auch so behandeln kann. Und alles, was das nicht macht, ist in einer OO-Sprache Pfui. Das heißt ja nicht, dass man es nicht trotzdem benutzen kann.
Aber Anfängern sollte man write-host verbieten.
Steht doch aber in der Aufgabe:
Das interpretiere ich so, dass auch Fehlermeldungen abgefangen und sinnvoll ersetzt werden sollen. Und die schreibt man in Error und nicht in Standard. Außerdem werden sie dann so hübsch rot und sehen richtig professionell aus.
Ich meine das wirklich ernst mit dem Verbieten für Anfänger. Gut, der TO weiß es jetzt nach dem Thread. Der darf dann wieder. Aber ich haben jahrelang PS für Anfänger unterrichtet. Da habe ich die Erfahrung gemacht, dass das mit dem write-host am anfang keine gute Idee ist. Dann entdecken sie vielleicht das hier:
und versuchen dann
und wundern sich, dass zwar auf dem Bildschirm die Ausgabe erscheint wie gewohnt, im Log aber nie was drinsteht. Und dann werden die Fehler gesucht und gesucht und gesucht und er wird nie gefunden.
Liebe Grüße
Erik
Zitat von @149569:
Kommt wie immer darauf an! Write-Output braucht man nur wenn man etwas an eine Variable oder aus einer Funktion zurückgeben möchte,
Kommt wie immer darauf an! Write-Output braucht man nur wenn man etwas an eine Variable oder aus einer Funktion zurückgeben möchte,
Der wesentliche Unterschied ist, dass write-output ein Objekt zurückgibt, welches man auch so behandeln kann. Und alles, was das nicht macht, ist in einer OO-Sprache Pfui. Das heißt ja nicht, dass man es nicht trotzdem benutzen kann.
Write-Error wenn man einen benutzerdefinierten Fehler generieren möchte (glaube so weit ist der TO dann doch noch nicht
).
Steht doch aber in der Aufgabe:
4. Standardausgaben von Befehlen sollen nicht angezeigt werden. Stattdessen sollen dort wo sinnvoll benutzerdefinierte Ausgaben erfolgen
Das interpretiere ich so, dass auch Fehlermeldungen abgefangen und sinnvoll ersetzt werden sollen. Und die schreibt man in Error und nicht in Standard. Außerdem werden sie dann so hübsch rot und sehen richtig professionell aus.
Write-Host halt wenn es nur einfache Konsolen-Ausgaben ohne viel Kladeradatsch oder Datenrückgabe sein soll. Auf die Definition und Umsetzung kommt es halt an was die richtige Wahl ist.
Ich meine das wirklich ernst mit dem Verbieten für Anfänger. Gut, der TO weiß es jetzt nach dem Thread. Der darf dann wieder. Aber ich haben jahrelang PS für Anfänger unterrichtet. Da habe ich die Erfahrung gemacht, dass das mit dem write-host am anfang keine gute Idee ist. Dann entdecken sie vielleicht das hier:
irgendein-befehl | tee $output
und versuchen dann
write-host "Meine tolle Fehlermeldung" | tee $logfile
und wundern sich, dass zwar auf dem Bildschirm die Ausgabe erscheint wie gewohnt, im Log aber nie was drinsteht. Und dann werden die Fehler gesucht und gesucht und gesucht und er wird nie gefunden.
Liebe Grüße
Erik