Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Mehrere if anweisungen in Powershell

Mitglied: user88

user88 (Level 1) - Jetzt verbinden

29.07.2010, aktualisiert 08:38 Uhr, 17623 Aufrufe, 3 Kommentare

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.
Mitglied: Korrn
29.07.2010 um 09:28 Uhr
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.
Bitte warten ..
Mitglied: 5t8d1e
29.07.2010 um 09:31 Uhr
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
Bitte warten ..
Mitglied: user88
29.07.2010 um 10:22 Uhr
hey Korrn#,

wenn ich den Teil zwei Mal durchlaufen lasse oder nach {New-Item C:\Scripte\...} was einfüge wird der Code zu lang und unprofessionell.:D

Zitat von Korrn:
IF NOT EXIST %verzeichnis% MKDIR %verzeichnis%
IF NOT EXIST %verzeichnis%\%datei% MK %verzeichnis%\%datei%


du verwechselst Batch mit Powershell oder umgekehrt.


Ich hab mir dann den Syntax zu If-Anweisung genauer angeschaut, und diesen kurzen Code geschrieben.

$Verzeichnis = 'C:\temp\sem'
$Datei = 'C:\Scripte\Powershell\test.txt'

if (Test-Path $Datei)
{echo "Datei existiert"}
else {New-Item 'C:\Scripte\Powershell' -Name test.txt -type "file" -value "testtesttest" -force}

Es funktioniert einwandfrei.

Danke euch beiden, zumal ich nicht wusste, dass bei Powershell die if-anweisung True oder False ausgibt.
Bitte warten ..
Ähnliche Inhalte
Visual Studio

Mehrere Zellen in VB ansprechen mit einer Anweisung

gelöst Frage von peterchen1976Visual Studio8 Kommentare

Hallo, ich habe ein Problem mit folgender Formel: " If Not zelle Is Nothing Then If zelle.Address = ("$C$15") ...

Datenbanken

SQL - mehrere UPDATE-Anweisungen in einem String per vbs

gelöst Frage von goodbytesDatenbanken4 Kommentare

Hallo, ich möchte mehrere Werte in eine MySQL-Datenbank mittels vbs-Script eintragen. Eigentlich besteht jede Zeile aus "Update ;", bei ...

IDE & Editoren

Powershell ISE funktioniert nicht mehr

gelöst Frage von tribas222IDE & Editoren2 Kommentare

Hallo, heute wollte ich mal wieder etwas in der powershell ISE programmieren, und dann geht das Programm nicht mal ...

Batch & Shell

Powershell: Mehrere Domains einlesen

gelöst Frage von AgilolfingerBatch & Shell9 Kommentare

Hallo, wir haben im AD mehrere Domains drin. Weiß jemand, wie ich alle vorhandenen Domains in Powershell einlese? Schonmal ...

Neue Wissensbeiträge
Server-Hardware
HP iLO ist gefährdet (iLO 4))
Tipp von AlFalcone vor 52 MinutenServer-Hardware

Gemäss Twitter und Heise gibt es eine Angriffsmöglichkeit auf iLO iLO ist gefährdet Copyright © und alle Rechte liegen ...

CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 9 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

Heiß diskutierte Inhalte
Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung27 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...

Router & Routing
Subnetzmaske vergrößern
gelöst Frage von groovesurferRouter & Routing17 Kommentare

Hallo, hat jemand schonmal getestet was passiert, wenn man die Subnetzmaske bei laufendem Betrieb (wenn user im Netzwerk verbunden ...