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.
Please also mark the comments that contributed to the solution of the article
Content-ID: 147886
Url: https://administrator.de/forum/mehrere-if-anweisungen-in-powershell-147886.html
Printed on: May 12, 2025 at 11:05 o'clock
3 Comments
Latest comment
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