コマンドからpowershellコマンドを実行する


30

cmdからこのコマンドを実行する方法:

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

私はまだこのエラーが発生します:

'-eq'演算子の右側に値式を指定する必要があります。1行目:char:37 +(get-process |?{$ _。Description -eq <<<< Sysinternals Process Explorer})| プロセス名を選択| 出力ファイル$ env:APPDATA \ example.txt + CategoryInfo:ParserError:(:) []、ParentContainsErrorRecordEx ception + FullyQualifiedErrorId:ExpectedValueExpression


3
あなたの問題はあなたの内側の引用符のセットかもしれません。それらを削除するか、それらを使用する必要がある場合は、この男を使用してみてください。
DeathByTensors 2016年

2
警告 -わいせつな言葉を投稿に使用しないでください。削除しました。他のユーザーがあなたの投稿に「失礼または乱用」のフラグを立てた可能性があることに注意してください。Be Niceをお読みください:「下品な言葉や性的に示唆を
与える

回答:


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

基本的には、Powershellコマンドがあり、CMDから呼び出すには、これらの引用符の間に貼り付け

powershell -command " #PasteCodeHere "

これらの引用符の内部で作業する必要があり'ます。そうしないと、コマンドパラメーターが中断されます。

編集:追加情報:

かなり頻繁にこれに遭遇します: powershell -command "& 'somestuff'"

これ&はファイルを呼び出すために使用されます。コマンドのみを使用している&場合は不要であり、スクリプトを呼び出したい場合は、それを使用する必要があります。

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

powershell -file C:\file.ps1スクリプトの呼び出しにも使用できます


uは最高の男です<3それは働いています
Qassam Mahmoud

3
実行するコマンドに引用符がある場合は、二重にする必要があります。例:powershell -command "dir" "c:\ Program Files" ""
Myobis

1
@myobisまたは単一引用符を使用できますpowershell -command " dir 'C:\Program Files' "
SimonS 2018年

1
@myobis実際には、引用符を2倍にすることはできません(Windows 10 cmdの場合)。しかし、バックスラッシュエスケープを使用すると、次のようになりましたpowershell -command "dir \"c:\Program Files\" "
。– wisbucky

0

Edgeをリセットするために、次のコマンドをバッチファイルに配置しました(これにより、時々問題が発生していました)。その後、バッチファイルは管理者レベルで実行されました。powershell行の三重引用符に注意してください。この例では、「cmd」コマンドラインからPowerShellコマンドを実行しようとしている人のために、説明を明確にすることがあります。

@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}"

Powershell行の「トリプル」引用符に注意してください。ちなみに、この行は「For Each」と「-Register」がこのコメントボックスでワードラップされた1行です。バッチファイル(または手動でcmdセッションに入力した場合はコマンドライン)では、1行にする必要があります。

重要なことは、「PowerShell」という語の逆コンマ( ")の後にコマンドを開始および終了し、渡されるpowershellコマンドに既にある内部の逆コンマが「トリプル」引用符(""")に 変換されることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.