comment je peux exécuter cette commande à partir de cmd:
powershell.exe "(get-process |? {$ _. Description -eq" Sysinter Process Explorer "}) | select processname | out-file $ env: APPDATA \ example.txt"
je reçois toujours cette erreur:
Vous devez fournir une expression de valeur sur le côté droit de l'opérateur «-eq». À la ligne: 1 caractère: 37 + (get-process |? {$ _. Description -eq <<<< Sysinternals Process Explorer}) | sélectionnez le nom du processus | out-file $ env: APPDATA \ example.txt + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordEx ception + FullyQualifiedErrorId: ExpectedValueExpression
windows
command-line
powershell
cmd.exe
process
Qassam Mahmoud
la source
la source
Réponses:
Fondamentalement, vous avez une commande PowerShell et collez-la entre ces guillemets pour l'appeler à partir de CMD
powershell -command " #PasteCodeHere "
à l'intérieur de ces guillemets, vous devez travailler avec
'
sinon cela interrompra votre paramètre de commande.Modifier: Informations supplémentaires:
vous rencontrerez assez souvent ceci:
powershell -command "& 'somestuff'"
l'
&
est utilisé pour appeler un fichier. lorsque vous n'utilisez qu'une commande&
n'est pas nécessaire, lorsque vous souhaitez appeler un script, vous devez l'utiliser.powershell -command "& 'C:\foobar.ps1'"
Vous pouvez également utiliser
powershell -file C:\file.ps1
pour appeler un scriptla source
powershell -command " dir 'C:\Program Files' "
powershell -command "dir \"c:\Program Files\" "
J'ai placé les commandes suivantes dans un fichier de commandes pour réinitialiser Edge (qui posait parfois des problèmes). Le fichier de commandes a ensuite été exécuté au niveau administrateur. Veuillez noter les guillemets triples dans la ligne PowerShell. Cet exemple peut clarifier les choses pour ceux qui essaient d'exécuter une commande powershell à partir d'une ligne de commande "cmd".
Notez les guillemets "triples" dans la ligne Powershell. Cette ligne est d'ailleurs une seule ligne avec "For Each" et "-Register" enveloppé de mots dans cette boîte de commentaire. Il doit s'agir d'une seule ligne dans le fichier de commandes (ou sur la ligne de commande si elle est saisie manuellement dans une
cmd
session).L'important est qu'après le mot "PowerShell", les virgules inversées (") démarrent et terminent la commande et que toutes les virgules inversées internes déjà présentes dans la commande powershell soient converties en guillemets" triples "(
"""
)la source