Wie führe ich ein PowerShell-Skript aus?
- Ich habe ein Skript namens myscript.ps1
- Ich habe alle notwendigen Frameworks installiert
- Ich habe , dass die Ausführungsrichtlinie Sache
- Ich habe die Anweisungen auf dieser MSDN-Hilfeseite befolgt
und versuche, sie folgendermaßen auszuführen:
powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'
(mit oder ohne--noexit
)
Dies gibt genau nichts zurück, außer dass der Dateiname ausgegeben wird.
Kein Fehler, keine Nachricht, nichts. Oh, wenn ich hinzufüge -noexit
, passiert dasselbe, aber ich bleibe in PowerShell und muss manuell beenden.
Die .ps1-Datei soll ein Programm ausführen und die Fehlerstufe abhängig von der Ausgabe des Programms zurückgeben. Aber ich bin mir ziemlich sicher, dass ich noch nicht einmal dort bin.
Was mache ich falsch?
windows
powershell
scripting
Pekka
quelle
quelle
powershell
wie Sie es begonnen hättencmd
. Jetzt können Sie dasmyscript.ps1
Skript als jede ausführbare Datei dort in (im Powershell-Fenster) ausführen, dh.\myscript.ps1
Antworten:
PS
Eingabeaufforderung angezeigt wirdNavigieren Sie zu dem Verzeichnis, in dem sich das Skript befindet
Führen Sie das Skript aus:
Was vermisse ich??
Oder: Sie können das PowerShell-Skript folgendermaßen ausführen
cmd.exe
:laut diesem Blogbeitrag hier
Oder Sie können Ihr PowerShell-Skript sogar über Ihre C # -Anwendung ausführen :-)
Führen Sie PowerShell-Skripts asynchron in Ihrer C # -Anwendung aus
quelle
powershell -noexit "& "C:\yada_yada\run_import_script.ps1"
(beachten Sie die drei doppelten Anführungszeichen) Ich verstehe nicht wirklich warum, aber an diesem Punkt ist es mir eigentlich egal :) Vielen Dank!"&
?powershell -executionpolicy bypass ".\myscript.ps1 yadayadayada"
Wenn Sie mit PowerShell 2.0 arbeiten, verwenden Sie den
-File
Parameter von PowerShell.exe , um ein Skript aus einer anderen Umgebung wie cmd.exe aufzurufen. Zum Beispiel:quelle
-ExecutionPolicy Bypass
Wenn Sie ein Skript ausführen möchten, ohne die Standardrichtlinie für die Skriptausführung zu ändern, können Sie beim Starten von Windows PowerShell den Bypass- Schalter verwenden .
quelle
-nologo
Art:
powershell -executionpolicy bypass -File .\Test.ps1
HINWEIS: Hier
Test.ps1
ist das PowerShell-Skript.quelle
powershell -executionpolicy bypass -File .\Test.ps1
vorausgesetzt, Ihr aktuelles Arbeitsverzeichnis enthält Test.ps1Ich hatte das gleiche Problem und habe es versucht und versucht ... Schließlich habe ich verwendet:
Und setzen Sie diese Zeile in eine Batch-Datei, und das funktioniert.
quelle
Wenn Sie nur PowerShell 1.0 haben , scheint dies den Trick gut genug zu machen:
Die Skriptdatei wird an die PowerShell-Befehlszeile weitergeleitet.
quelle
Ziemlich einfach. Klicken Sie in Windows mit der rechten Maustaste auf die PS1-Datei, und klicken Sie im Shell-Menü auf Mit PowerShell ausführen .
quelle
Verwenden der cmd (BAT) -Datei:
Wenn Sie als Administrator ausgeführt werden müssen :
quelle
Eine einfache Möglichkeit besteht darin, PowerShell ISE zu verwenden , ein Skript zu öffnen, Ihr Skript auszuführen und aufzurufen.
quelle
Wenn Ihr Skript mit der
.ps1
Erweiterung benannt ist und Sie sich in einem PowerShell-Fenster befinden, führen Sie es einfach aus./myscript.ps1
(vorausgesetzt, die Datei befindet sich in Ihrem Arbeitsverzeichnis).Dies gilt ohnehin für mich unter Windows 10 mit PowerShell Version 5.1, und ich glaube nicht, dass ich etwas getan habe, um dies zu ermöglichen.
quelle
myscript.ps1
nicht funktioniert, warf einen Fehler, aber mit./
seiner Ausführung.Geben Sie den Pfad des Skripts an, dh die Pfadeinstellung durch cmd:
$> . c:\program file\prog.ps1
Führen Sie die Einstiegspunktfunktion von PowerShell aus:
Zum Beispiel,
$> add or entry_func or main
quelle
>$ . c:\program file\prog.ps1 '.' is not recognized as an internal or external command, operable program or batch file.
und>$ add or entry_func or main 'add' is not recognized as an internal or external command, operable program or batch file.
Wenn Sie ein PowerShell-Skript mit Windows Task Scheduler ausführen möchten, führen Sie die folgenden Schritte aus:
Erstellen Sie eine Aufgabe
Set
Program/Script
zuPowershell.exe
Set
Arguments
zu-File "C:\xxx.ps1"
Eine andere Antwort lautet: Wie führe ich ein PowerShell-Skript automatisch mit dem Windows-Taskplaner aus? .
quelle
Verwenden Sie den
-File
Parameter vor dem Dateinamen. Die Anführungszeichen lassen PowerShell denken, dass es sich um eine Folge von Befehlen handelt.quelle
Ich habe eine sehr einfache Antwort, die funktioniert:
set-executionpolicy unrestricted
Ich habe diese Lösung über den Link gefunden, der als Teil der Fehlermeldung angegeben wurde: Informationen zu Ausführungsrichtlinien
quelle