uruchom polecenie powershell z cmd

8

jak mogę uruchomić to polecenie z cmd:

powershell.exe "(get-process |? {$ _. Opis -eq   „Sysinter Process Explorer”}) | wybierz nazwę procesu | plik zewnętrzny   $ env: APPDATA przykład.txt ”

Nadal otrzymuję ten błąd:

Musisz podać wyrażenie wartości po prawej stronie   '-eq' operato r. Na linii: 1 znak: 37   + (get-process |? {$ _. Opis -eq & lt; & lt; lt; lt; Sysinternals Process Explorer}) | wybierz nazwę procesu | out-file $ env: APPDATA przykład.txt       + CategoryInfo: ParserError: (:) [], odbiór ParentContainsErrorRecordEx       + FullyQualifiedErrorId: ExpectedValueExpression

Qassam Mahmoud
źródło
3
Twoim problemem może być twój wewnętrzny zestaw znaków cudzysłowu. Spróbuj je usunąć lub jeśli muszą być użyte, spróbuj użyć tego faceta: „aka apostrof w miejscu.
DeathByTensors
1
Ostrzeżenie - nie używaj nieprzyzwoitości w swoich postach. Usunąłem to dla ciebie. Pamiętaj, że inni użytkownicy mogli oznaczyć Twój post jako „niegrzeczny lub obraźliwy”, co doprowadziło do możliwej utraty rep lub zawieszenia. Proszę przeczytaj Bądź miły : „Unikaj wulgarnych określeń i wszelkich sugestii seksualnych”
DavidPostill

Odpowiedzi:

16
powershell -command "get-process | ? {$_.Description -eq 'Sysinter Process Explorer'} | select processname | out-file $env:APPDATA\example.txt"

zasadniczo masz komendę powershell i wklej ją między cytaty, aby wywołać ją z CMD

powershell -command " #PasteCodeHere "

wewnątrz tych cytatów musisz pracować ' w przeciwnym razie spowoduje to przerwanie parametru polecenia.

Edytować: Dodatkowe informacje:

dość często spotkasz to: powershell -command "& 'somestuff'"

& służy do wywołania pliku. kiedy używasz tylko polecenia & jest niepotrzebne, gdy chcesz wywołać skrypt, powinieneś go użyć.

powershell -command "& 'C:\foobar.ps1'"

Możesz także użyć powershell -file C:\file.ps1 wywołać skrypt

SimonS
źródło
Jesteś najlepszym człowiekiem i działa 3
Qassam Mahmoud
1
Jeśli polecenie do wykonania ma cytaty, muszą zostać podwojone. Przykład: powershell -command "dir" "c: Program Files" ""
Myobis
@ Myobis lub możesz użyć pojedynczych cudzysłowów powershell -command " dir 'C:\Program Files' "
SimonS
@ Myobis Właściwie podwojenie cytatów nie działa (w Windows 10 cmd). Ale użycie ucieczki ukośnikiem odwrotnym: powershell -command "dir \"c:\Program Files\" "
wisbucky