2017-10-23 15 views
-1

このPowerShellコマンドスクリプトをバッチファイルで実行しようとしていますが、動作させられないようです。前もって感謝します。 PowerShellでは正常に動作しますが、バットで動作させるだけです。最短の方法で.batで使用するPowerShellスクリプトを変換する方法

$wshell = New-Object -ComObject WScript.Shell; 
$wshell.AppActivate('APPNAME') 
Sleep 1 
$wshell.SendKeys('{ENTER}'); 
+0

バッチでps1を呼び出してみませんか? Powershellがそれをやることができるときに、なぜバッチを使うのですか? – Manu

+1

これはバッチファイルで実行できます: 'powershell -command '$ wshell = New-Object -ComObject wscript.shell; $ wshell.AppActivate('無題 - メモ帳 ');スリープ1; $ wshell.SendKeys(' {ENTER } '); "' – Squashman

+0

簡略化: 'powershell $ wshell =新規オブジェクト-ComObject wscript.shell; $ wshell.AppActivate( '無題 - メモ帳');睡眠1; $ wshell.SendKeys( '{ENTER}') '[この質問]を参照してください(https://stackoverflow.com/questions/36672784/convert-a-small-ps-script-into-a-long-line-in- a-batch-file) – Aacini

答えて

0

邪魔になっロゴ、プロファイル、およびポリシーのように起こる事柄を考慮しながら:余談として

powershell -ExecutionPolicy Bypass -NoProfile -NoLogo -Command "$wsh=New-Object -ComObject wscript.shell;$wsh.AppActivate('Appname');Start-Sleep 1000;$wsh.SendKeys('{ENTER}')" 

、セミコロンを分離する以外PowerShellスクリプトに不要な同じ行の文。

+0

次のエラーが表示されます。 新規オブジェクト:タイプ[wscript.shell]が見つかりません:このタイプを含むアセンブリがロードされていることを確認してください。 –

+0

@TrevorTeapeは、何らかの理由でcomオブジェクトではなくアセンブリを検索しているようです。私は答えを明示的に更新しました – TheIncorrigible1

+0

これは実行されますが、開いているアプリケーションに名前で切り替えるのではなく、falseを返します。私はこれまでのところあなたの助けに感謝します。 –

関連する問題