Wie kann ich diesen Befehl von cmd ausführen:
Powershell.exe "(get-process |? {$ _. Description -eq" Sysinter Process Explorer "}) | select processname | out-file $ env: APPDATA \ example.txt"
Ich bekomme immer noch diesen Fehler:
Sie müssen einen Wertausdruck auf der rechten Seite des Operators '-eq' angeben. In Zeile: 1 Zeichen: 37 + (get-process |? {$ _. Description -eq <<<< Sysinternals Process Explorer}) | Wählen Sie Prozessname | out-file $ env: APPDATA \ example.txt + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordEx ception + FullyQualifiedErrorId: ExpectedValueExpression
windows
command-line
powershell
cmd.exe
process
Qassam Mahmoud
quelle
quelle
Antworten:
Grundsätzlich haben Sie einen Powershell-Befehl und fügen ihn zwischen diese Anführungszeichen ein, um ihn von CMD aufzurufen
powershell -command " #PasteCodeHere "
Innerhalb dieser Anführungszeichen müssen Sie arbeiten, da
'
sonst Ihr Befehlsparameter unterbrochen wird.Bearbeiten: Zusätzliche Informationen:
ziemlich oft werden Sie auf Folgendes stoßen:
powershell -command "& 'somestuff'"
Mit
&
wird eine Datei aufgerufen. Wenn Sie nur einen Befehl verwenden,&
ist dies nicht erforderlich. Wenn Sie ein Skript aufrufen möchten, sollten Sie es verwenden.powershell -command "& 'C:\foobar.ps1'"
Sie können auch
powershell -file C:\file.ps1
ein Skript aufrufenquelle
powershell -command " dir 'C:\Program Files' "
powershell -command "dir \"c:\Program Files\" "
Ich habe die folgenden Befehle in eine Batch-Datei eingefügt, um Edge zurückzusetzen (was von Zeit zu Zeit zu Problemen geführt hat). Die Batchdatei wurde dann auf Administratorebene ausgeführt. Bitte beachten Sie die dreifachen Anführungszeichen in der Powershell-Zeile. Dieses Beispiel kann Dinge für diejenigen verdeutlichen, die versuchen, einen Powershell-Befehl über eine "cmd" -Befehlszeile auszuführen.
Beachten Sie die "dreifachen" Anführungszeichen in der Powershell-Zeile. Diese Zeile ist übrigens eine einzelne Zeile, wobei "For Each" und "-Register" in dieses Kommentarfeld eingeschlossen werden. Es sollte jedoch eine einzelne Zeile in der Batchdatei sein (oder in der Befehlszeile, wenn sie manuell in eine
cmd
Sitzung eingegeben wird ).Wichtig ist, dass nach dem Wort "PowerShell" invertierte Kommas (") den Befehl starten und beenden und alle internen Anführungszeichen, die bereits im übergebenen Powershell-Befehl enthalten sind, in" dreifache "Anführungszeichen (
"""
) konvertiert werden.quelle