こんにちは。
けいぞうです。
今回は「PowerShell(ps1)からbatを呼ぶ方法とbatからPowerShellを呼ぶ方法」についての記事です。
目次
PowerShell(ps1)からbatを呼ぶ方法
Start-Processで呼ぶ
Start-Processコマンドを使って呼ぶ方法です。最も正攻法なパターンがこれだと思われます。
Start-Process C:\work\test.bat
Start-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.bat
batからPowerShellを呼ぶ方法
おそらくこちらのシチュエーションの方が多いと思います。
batからPowerShellを呼ぶには、以下のように記述します。
powershell -file C:\work\test.ps1
powershellというコマンドに-fileの引数に対してps1ファイルを指定することで実行可能です。
また、こちらも相対パスで指定することが可能です。
powershell -file test.ps1
カレントディレクトリ直下のファイルを実行する際の指定方法が、PowerShellとbatで若干異なるのでご注意ください。
最近のコメント