Cómo puedo ejecutar este comando desde cmd:
powershell.exe "(get-process |? {$ _. Descripción -eq" Sysinter Process Explorer "}) | seleccione el nombre del proceso | out-file $ env: APPDATA \ example.txt"
Todavía recibo este error:
Debe proporcionar una expresión de valor en el lado derecho del operator '-eq'. En la línea: 1 carácter: 37 + (get-process |? {$ _. Descripción -eq <<<< Sysinternals Process Explorer}) | seleccione nombre de proceso | out-file $ env: APPDATA \ example.txt + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordEx ception + FullyQualifiedErrorId: ExpectedValueExpression
windows
command-line
powershell
cmd.exe
process
Qassam Mahmoud
fuente
fuente
Respuestas:
básicamente tiene un comando de PowerShell y péguelo entre estas citas para llamarlo desde CMD
powershell -command " #PasteCodeHere "
dentro de estas citas tiene que trabajar con lo
'
contrario interrumpirá su parámetro de comando.Editar: Información adicional:
muy a menudo te encontrarás con esto:
powershell -command "& 'somestuff'"
la
&
se utiliza para llamar a un archivo. cuando solo estás usando un comando no&
es necesario, cuando quieres llamar a un script, debes usarlo.powershell -command "& 'C:\foobar.ps1'"
También puedes usar
powershell -file C:\file.ps1
para llamar a un scriptfuente
powershell -command " dir 'C:\Program Files' "
powershell -command "dir \"c:\Program Files\" "
Puse los siguientes comandos en un archivo por lotes para restablecer Edge (que ha estado dando algunos problemas de vez en cuando). El archivo por lotes se ejecutó a nivel de administrador. Tenga en cuenta las comillas triples en la línea de PowerShell. Este ejemplo puede aclarar las cosas para aquellos que intentan ejecutar un comando de PowerShell desde una línea de comando "cmd".
Tenga en cuenta las citas "triples" en la línea Powershell. Esa línea, por cierto, es una sola línea con "For Each" y "-Register" en este cuadro de comentario. Sin embargo, debe ser una sola línea en el archivo por lotes (o en la línea de comando si se escribe manualmente en una
cmd
sesión).Lo importante es que después de la palabra "PowerShell" comas invertidas (") inicie y finalice el comando y cualquier comilla invertida interna que ya esté en el comando powershell que se pasa se convierte en comillas" triples "(
"""
)fuente