36

how i can run this command from cmd :

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

i still get this error :

You must provide a value expression on the right-hand side of the '-eq' operato r. At line:1 char:37 + (get-process | ? {$_.Description -eq <<<< Sysinternals Process Explorer}) | select processname | out-file $env:APPDATA\example.txt + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordEx ception + FullyQualifiedErrorId : ExpectedValueExpression

  • 3
    Your problem might be your inner set of quotation marks. Try either removing them or if they must be used, try using this guy: ' aka the apostrophe in place. – DeathByTensors May 24 '16 at 11:15
  • 3
    Warning - please do not use obscenities in your posts. I've removed it for you. Note that other users may have flagged your post as "rude or abusive" leading to possible rep loss or suspension. Please read Be Nice: "Avoid vulgar terms and anything sexually suggestive" – DavidPostill May 24 '16 at 11:43
51
powershell -command "get-process | ? {$_.Description -eq 'Sysinter Process Explorer'} | select processname | out-file $env:APPDATA\example.txt"

basically you have a powershell command and paste it in between these quotes to call it from CMD

powershell -command " #PasteCodeHere "

inside these quotes you have to work with ' otherwise it will interrupt your command parameter.

Edit: Additional Information:

quite often you will encounter this: powershell -command "& 'somestuff'"

the & is used to call a File. when you're only using a command & is unnessecary, when you want to call a script, you should use it.

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

You could also use powershell -file C:\file.ps1 to call a script

| improve this answer | |
  • u are the best man <3 it's working – Qassam Mahmoud May 24 '16 at 15:46
  • 3
    If the command to be executed has quotes, they must be doubled. Example : powershell -command "dir ""c:\Program Files""" – Myobis Mar 29 '18 at 9:28
  • 1
    @myobis or you can just use single quotes powershell -command " dir 'C:\Program Files' " – SimonS Mar 29 '18 at 10:06
  • 1
    @myobis Actually, doubling the quotes doesn't work (in Windows 10 cmd). But using backslash escaping did: powershell -command "dir \"c:\Program Files\" " – wisbucky Apr 3 '18 at 20:43
0

I placed the following commands into a batch file to reset Edge (which has been giving some problems from time to time). The batch file was then run at Administrator level. Please note the triple quotes in the powershell line. This example may clarify things for those trying to run a powershell command from a "cmd" command line.

@echo off
c:
cd %userprofile%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe
rmdir /s /q 
userprofile%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe
powershell "Get-AppXPackage -AllUsers -Name Microsoft.MicrosoftEdge | Foreach 
{Add-AppxPackage -DisableDevelopmentMode -
  Register"""$($_.InstallLocation)\AppXManifest.xml""" -Verbose}"

Note the "triple" quotes in the Powershell line. That line by the way is a single line with "For Each" and "-Register" being word-wrapped in this comment-box. It should be a single line though in the batch file (or on the command line if manually typed into a cmd session).

The important thing is that after the word "PowerShell" inverted commas (") start and end the command and any internal inverted commas already in the powershell command being passed are converted to "triple" quotes (""")

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.