##バッチファイル
同期実行する場合
CallPosh.bat
@ECHO OFF
FOR %%a IN (%*) DO type %%a | powershell -command "Invoke-Expression($input)"
非同期実行する場合
CallPoshAsync.bat
@ECHO OFF
FOR %%a IN (%*) DO type %%a | start /b powershell -command "Invoke-Expression($input)"
##使い方(例)
例として、sample1.ps1、sample2.ps1の2ファイルを実行してみる。
sample1.ps1
echo "こんにちは。";
start-sleep 5;
echo "こんにちは。";
start-sleep 5;
echo "こんにちは。";
sample2.ps1
echo "☆☆☆☆☆☆";
start-sleep 5;
echo "☆☆☆☆☆☆";
start-sleep 5;
echo "☆☆☆☆☆☆";
まず、同期実行してみた。
CallPosh.bat sample1.ps1 sample2.ps1
結果
こんにちは。
こんにちは。
こんにちは。
☆☆☆☆☆☆
☆☆☆☆☆☆
☆☆☆☆☆☆
次に、非同期実行してみた。
CallPoshAsync.bat sample1.ps1 sample2.ps1
結果
こんにちは。
☆☆☆☆☆☆
こんにちは。
☆☆☆☆☆☆
こんにちは。
☆☆☆☆☆☆
##まとめ
バッチファイルはダブルクリックやファイルのドラッグ&ドロップで起動できるので、
PowerShellと組み合わせて活用していきたい。