バッチファイルを作成するのが初めてです。特定のディレクトリでWindows PowerShellを開くコマンドを実行し、そこに移動してからコマンドを実行しようとしています。
これまでのところ、私は次のとおりです。 Powershell.exe -noexit -command "cd 'c:\Dev\ProductDev'"
これは、PowerShellを適切な場所で開いたときに機能するようですが、コマンドを実行できませんnode sp
。
私は成功せずに以下を試しましたPowerShell -NoExit -Command "Write-Host 'node sp'"
また、CMD(黒/白)ウィンドウではなく、青い表示画面でWindows PowerShellを開くことはできますか?
あなたは完全なバットファイルを提供していないので、私はそれがそうだと思います
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
パラメータ。