none
alle Dateien in einen Verzeichnis auslesen und ausführen RRS feed

  • Frage

  • Hallo Zusammen,

    Ich bin völliger Anfänger und hab noch keinerlei Erfahrung in Powershell.

    Ich würde gerne aus einem Verzeichnis alle .exe Dateien auslesen und die nacheinander mit dem Paraeter /s ausführen.

    also z.B.

    Verzeichnis: c:\Drivers

    Dateien:

    setup1.exe

    Treiber5.exe

    usw.

    könnt Ihr mir da einen Anstoß geben, wie man das in PS realisieren kann?

    Vielen Dank im Vorraus

    Tecky

    Freitag, 24. Juli 2015 05:46

Antworten

  • Kein Problem! Markiere bitte noch den Thread als erledigt und die Antworten entsprechend.

    Gruß

    Ben

    MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)

    Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.

    • Als Antwort markiert Tecky80 Montag, 27. Juli 2015 07:52
    Freitag, 24. Juli 2015 09:19

Alle Antworten

  • Moin,

    Du meinst in etwa sowas?

    $filter = "*.exe"
    $path = "c:\Treiber\"
    
    set-location $path
    get-childitem "$filter" | foreach-object {  $_.name  }
    
    

    Grüße,

    Martin

    Freitag, 24. Juli 2015 06:00
  • Hi,

    Danke für die schnelle Antwort.

    Im grunde passt das. Die ausgegebenen Datei sollen aber nun nach einander mit dem Parameter /s aus gegeben werden. So würden dan die Treiber und Software silent installiert.

    ich hatte das mitfolgendem in eine txt datei mal ausgegeben. Es wird aber nur die letzte datei beachtet.

    get-childitem "*.exe" | foreach-object {  $_.name +" /s" > test.txt }

    wie kann man alle aufgelisteten weiter geben?

    Gruß

    Tecky

    Freitag, 24. Juli 2015 06:41
  • Hi Tecky,

    dass nur die letzte Datei ausgegeben wird, ist klar - wenn Du nur ein > statt zwei >> verwendest, wird die TXT mit jedem neuen Durchlauf wieder überschrieben. >> = Daten anhängen.

    Bei Powershell musst Du ein paar Sachen diesbezüglich beachten, da Powershell /-Parameter nicht kennt bzw. sie anders oder gar nicht interpretiert. Daher lautet die Syntax in Deinem Fall wie folgt:

    Get-ChildItem "*.exe" | foreach-object {Start-Process "$_.name /s"}


    Gruß

    Ben

    MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)

    Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.

    Freitag, 24. Juli 2015 07:46
  • Hi,

    Ja mit den doppelten > hätte ich selbst drauf kommen können.

    ich hab das ganze jetzt mit -Wait gemacht, damit die Treiber nacheinander installiert werden und nicht alle auf einmal.

    So läuft es prima durch!

    Danke für die Hilfe

    Get-ChildItem "*.exe" | foreach-object {Start-Process -Wait "$_.name /s"}

    Freitag, 24. Juli 2015 09:05
  • Kein Problem! Markiere bitte noch den Thread als erledigt und die Antworten entsprechend.

    Gruß

    Ben

    MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)

    Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.

    • Als Antwort markiert Tecky80 Montag, 27. Juli 2015 07:52
    Freitag, 24. Juli 2015 09:19