web-dev-qa-db-ja.com

Windows PowerShellを実行するバッチを作成し、テキストを実行する

バッチファイルを作成するのが初めてです。特定のディレクトリでWindows PowerShellを開くコマンドを実行し、そこに移動してからコマンドを実行しようとしています。

これまでのところ、私は次のとおりです。 Powershell.exe -noexit -command "cd 'c:\Dev\ProductDev'"これは、PowerShellを適切な場所で開いたときに機能するようですが、コマンドを実行できませんnode sp

私は成功せずに以下を試しましたPowerShell -NoExit -Command "Write-Host 'node sp'"

また、CMD(黒/白)ウィンドウではなく、青い表示画面でWindows PowerShellを開くことはできますか?

3
Austin

あなたは完全なバットファイルを提供していないので、私はそれがそうだと思います

Powershell.exe -noexit -command "cd 'c:\Dev\ProductDev'"
PowerShell -NoExit -Command "Write-Host 'node sp'"

これは間違ったアプローチです。最初にPowershellを起動し、指定されたディレクトリに移動してから開いたままにします。このPowerShellを終了すると、batファイルは2番目のPowerShellを起動します。

1つのPowerShellを実行して、両方のコマンドを実行させる必要があります。 1つの方法は

Powershell.exe -noexit -command "cd 'c:\Dev\ProductDev'; Write-Host 'node sp'"

もう1つの方法は、MyScript.ps1のようなPowerShellスクリプトファイルを次の内容で記述することです。

cd 'c:\Dev\ProductDev'
Write-Host 'node sp'

実行するコマンドではなくPowerShellを起動して、実行するスクリプトを開始します( this および this StackOverflowの質問も参照してください)。このコマンドを直接実行するか、batファイルに配置するか、lnkファイルで実行するコマンドとして使用することもできます。

PowerShell.exe -noexit -ExecutionPolicy Bypass -File "MyScript.ps1"

PowerShellの問題は、デフォルトでは、(暗号で)署名されていないスクリプトを実行しないことです。それを解決する簡単な方法は-ExecutionPolicy Bypassパラメータ。

7
Werner Henze