Mehrere if anweisungen in Powershell
Hallo,
ich arbeite schon seit einer Woche an meinem ersten Powershell-Script.
Doch im Moment komm ich leider nicht mehr weiter.
Ich muss irgendwie in dem Script fragen, ob ein Verzeichnis existiert. Und wenn ein Verzeichnis existiert, dann soll überprüft werden, ob eine bestimmte Datei existiert.
Wenn diese bestimmte Datei nicht existiert, dann soll sie angelegt werden.
Sollte das Verzeichnis nicht existieren, dann soll sie angelegt werden.
$Verzeichnis = 'C:\Scripte\Powershell'
$Datei = 'C:\Scripte\Powershell\test.txt'
If (Test-Path $Verzeichnis){
echo "Verzeichnis existiert"
If (Test-Path $Datei){
{echo "Datei existiert"}
else
{echo "Datei existiert nicht"
New-Item 'C:\Scripte\Powershell' -Name test.txt -type "file" -value "testtesttest" -force}
else
{New-Item C:\Scripte\Powershell -type directory
}}}
aber irgendwie funktioniert das ganze nicht.
Woher weiß ich, dass wenn z.B. das Verzeichnis nicht existiert und der Script zu letzten else springt, und nicht zu ersten else?
Hoffe ihr könnt mir helfen.
danke schon mal im Vorraus.
ich arbeite schon seit einer Woche an meinem ersten Powershell-Script.
Doch im Moment komm ich leider nicht mehr weiter.
Ich muss irgendwie in dem Script fragen, ob ein Verzeichnis existiert. Und wenn ein Verzeichnis existiert, dann soll überprüft werden, ob eine bestimmte Datei existiert.
Wenn diese bestimmte Datei nicht existiert, dann soll sie angelegt werden.
Sollte das Verzeichnis nicht existieren, dann soll sie angelegt werden.
$Verzeichnis = 'C:\Scripte\Powershell'
$Datei = 'C:\Scripte\Powershell\test.txt'
If (Test-Path $Verzeichnis){
echo "Verzeichnis existiert"
If (Test-Path $Datei){
{echo "Datei existiert"}
else
{echo "Datei existiert nicht"
New-Item 'C:\Scripte\Powershell' -Name test.txt -type "file" -value "testtesttest" -force}
else
{New-Item C:\Scripte\Powershell -type directory
}}}
aber irgendwie funktioniert das ganze nicht.
Woher weiß ich, dass wenn z.B. das Verzeichnis nicht existiert und der Script zu letzten else springt, und nicht zu ersten else?
Hoffe ihr könnt mir helfen.
danke schon mal im Vorraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147886
Url: https://administrator.de/contentid/147886
Ausgedruckt am: 05.11.2024 um 08:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo.
Warum verschachtelst Du die IF-Anweisungen überhaupt?
IF NOT EXIST %verzeichnis% MKDIR %verzeichnis%
IF NOT EXIST %verzeichnis%\%datei% MK %verzeichnis%\%datei%
Ansonsten müsstest Du Deine aktuelle Logik entweder zwei mal durchlaufen, oder hinter "{New-Item C:\Scripte\Powershell -type directory" im else-Zweig der äußeren Verzweigung nach dem Verzeichnis auch noch die Datei anlegen.
Warum verschachtelst Du die IF-Anweisungen überhaupt?
IF NOT EXIST %verzeichnis% MKDIR %verzeichnis%
IF NOT EXIST %verzeichnis%\%datei% MK %verzeichnis%\%datei%
Ansonsten müsstest Du Deine aktuelle Logik entweder zwei mal durchlaufen, oder hinter "{New-Item C:\Scripte\Powershell -type directory" im else-Zweig der äußeren Verzweigung nach dem Verzeichnis auch noch die Datei anlegen.
Hallo user88,
hier der Auszug aus der Hilfe von PoSh, das Zauberwort nennt sich elseif .
Syntax
Im folgenden Beispiel wird die Syntax der If-Anweisung
veranschaulicht:
if (<Test1>)
{<Anweisungsliste 1>}
[elseif (<Test2>)
{<Anweisungsliste 2>}]
[else
{<Anweisungsliste 3>}]
Wenn Sie eine If-Anweisung ausführen, wird von Windows PowerShell
die Bedingungsüberprüfung <Test1> als "True" oder "False"
ausgewertet. Wenn <Test1> "True" ergibt, wird <Anweisungsliste 1>
ausgeführt, und die If-Anweisung wird von Windows PowerShell beendet.
Wenn <Test1> "False" ergibt, wird von Windows PowerShell die
durch die Bedingungsanweisung <Test2 > angegebene Bedingung
ausgewertet.
Grüße Torsten
hier der Auszug aus der Hilfe von PoSh, das Zauberwort nennt sich elseif .
Syntax
Im folgenden Beispiel wird die Syntax der If-Anweisung
veranschaulicht:
if (<Test1>)
{<Anweisungsliste 1>}
[elseif (<Test2>)
{<Anweisungsliste 2>}]
[else
{<Anweisungsliste 3>}]
Wenn Sie eine If-Anweisung ausführen, wird von Windows PowerShell
die Bedingungsüberprüfung <Test1> als "True" oder "False"
ausgewertet. Wenn <Test1> "True" ergibt, wird <Anweisungsliste 1>
ausgeführt, und die If-Anweisung wird von Windows PowerShell beendet.
Wenn <Test1> "False" ergibt, wird von Windows PowerShell die
durch die Bedingungsanweisung <Test2 > angegebene Bedingung
ausgewertet.
Grüße Torsten