Hallo,
wenn ich ein PowerShell-Skript aus der Eingabezeile unten im TC starte und Parameter übergebe, werden diese nicht an das Skript weitergegeben. Wieso ist das so, kann man das ändern?
Schonmal besten Dank.
Shalom
F.
PS-Skript plus Parameter aus der TC-Kommandozeile starten
Moderators: white, Hacker, Stefan2
-
- Junior Member
- Posts: 15
- Joined: 2009-09-07, 10:18 UTC
Re: PS-Skript starten
Bei mir funktioniert das. Kommt sicher auf das Was und Wie an....
- ghisler(Author)
- Site Admin
- Posts: 48021
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Re: PS-Skript starten
%1 usw. geht nicht bei Powershell-Skripten. Stattdessen verwenden Sie als erste Zeile param(parameternamen).
Beispiel:
Dateiname test.ps1
Aufruf:
Ausgabe:
Beispiel:
Dateiname test.ps1
Code: Select all
param($p1, $p2, $p3, $p4)
echo $p1
echo $p2
echo $p3
echo $p4
pause
Code: Select all
powershell -File test.ps1 abc def ghi jkl
Code: Select all
abc
def
ghi
jkl
Drücken Sie die Eingabetaste, um den Vorgang fortzusetzen...:
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
-
- Junior Member
- Posts: 15
- Joined: 2009-09-07, 10:18 UTC
Re: PS-Skript starten
Wenn ich au der EIngabezeile unten im TC (weiss nicht wie man die nennt, es ist die EIngabezeile über den Hotkeys ganz unten) das Ganze ohne powershell -File eingebe, klappt es nicht. Und mir ist nicht klar wieso.ghisler(Author) wrote: ↑2022-05-31, 08:02 UTC %1 usw. geht nicht bei Powershell-Skripten. Stattdessen verwenden Sie als erste Zeile param(parameternamen).
Beispiel:
Dateiname test.ps1Aufruf:Code: Select all
param($p1, $p2, $p3, $p4) echo $p1 echo $p2 echo $p3 echo $p4 pause
Ausgabe:Code: Select all
powershell -File test.ps1 abc def ghi jkl
Code: Select all
abc def ghi jkl Drücken Sie die Eingabetaste, um den Vorgang fortzusetzen...:
Schonmal besten Dank und frohe Pfingsten
cu
F.
Re: PS-Skript starten
Während du im TC bist, drücke mal die F1-Taste und lies bei Bedienung > BenutzeroberflächeRFriedr753 wrote: ↑2022-06-04, 11:23 UTC
Wenn ich au der EIngabezeile unten im TC (weiss nicht wie man die nennt, es ist die EIngabezeile über den Hotkeys ganz unten)
Beim TC ist der Standardinterpreter für ausführbaren Code die CMD.RFriedr753 wrote: ↑2022-06-04, 11:23 UTC das Ganze ohne powershell -File eingebe, klappt es nicht. Und mir ist nicht klar wieso.
Starte mal cmd.exe und gibt dort nur das ein: test.ps1 abc def ghi jkl
Geht das dort?
Meistens wird die PS1-Datei im Editor geöffnet.
Du must zuerst den gewünschten Interpreter angeben, und dann für diesen,
dass das was jetzt kommt als Datei zu behandeln ist, und nicht zB als direkten Befehl.
powershell -File test.ps1 abc def ghi jkl
Da die posh sowohl auf der Kommandozeile wie auch in einem Skript funktioniert,
muss man da manchmal genau 'sagen', was man gerade machen möchte.
Je nach Betriebssystem und Einstellungen (Firma, Privat) kann das auch anders sein.
Eventuell funktioniert auch einfach
powershell test.ps1 abc def ghi jkl
Zudem muss du den kompletten Pfad zur Skriptdatei angeben, zumindest relative als .\test.ps1
Aber das erledigt der TC für dich und nimmt den Pfad vom aktiven Panel als Pfad zum Skript.
Bei Dateinamen oder Pfade mit Leerzeichen muss der komplette Pfad in Anführungszeichen gesetzt werden:
powershell "test.ps1" abc def "ghi jkl zusammen"
In der cmd starte mal powershell /? und lies dir das durch...