PowerShell(ps1)からbatを呼ぶ方法、batからPowerShellを呼ぶ方法
こんにちは。けいぞうです。
今回は「PowerShell(ps1)からbatを呼ぶ方法とbatからPowerShellを呼ぶ方法」についての記事です。
目次
- 1 PowerShell(ps1)からbatを呼ぶ方法
- 1.1 Start-Processで呼ぶ
- 1.1.1 Start-Processのプロパティ
- 1.2 直指定で実効
- 1.1 Start-Processで呼ぶ
- 2 batからPowerShellを呼ぶ方法
PowerShell(ps1)からbatを呼ぶ方法
Start-Processで呼ぶStart-Processコマンドを使って呼ぶ方法です。最も正攻法なパターンがこれだと思われます。
Start-Process C:\work\test.batStart-Processにbatファイルのフルパスを指定することで、そのbatファイルを実行することができます。
また、相対パスで指定することも可能です。
例えば、カレントディレクトリ直下のbatを実行する場合、以下のように書きます。
Start-Process .\test.bat Start-Processのプロパティ プロパティ説明-FilePath実行するファイルのパスを指定。省略して指定が可能。-ArgumentList 実行ファイルに渡す引数の配列を指定。文字列の配列の指定が可能。-Wait指定した実行ファイルの処理が完了するまで待機する時間。-NoNewWindow別ウィンドウで立ち上げずにプロセスを起動する。-WindowStyle別ウィンドウで立ち上げる際のウィンドウの開き方を指定する。NoNewWindowと併用は不可。Normal:通常Hidden:非表示Minimized:最小化されたウィンドウMaximized :最大化されたウィンドウ 直指定で実効Start-Processコマンドレットを省いて、batファイルを直指定で実行することも可能です。
フルパス指定の場合
C:\work\test.bat相対パス指定で、カレントディレクトリ直下のbatを実行する場合
.test.batbatからPowerShellを呼ぶ方法
おそらくこちらのシチュエーションの方が多いと思います。
batからPowerShellを呼ぶには、以下のように記述します。
powershell -file C:\work\test.ps1powershellというコマンドに-fileの引数に対してps1ファイルを指定することで実行可能です。
また、こちらも相対パスで指定することが可能です。
powershell -file test.ps1カレントディレクトリ直下のファイルを実行する際の指定方法が、PowerShellとbatで若干異なるのでご注意ください。