質問: " -iPath ""$TextLine"" -oPath ""$oPath"" " #write-host $MyCMD & $mySelf "$MyCMD" } ``` プログラム2 ``` param( [string]$iPath , [string]$oPath ) Write-Host "引数1" $iPath Write-Host "引数2" $oPath ``` 引数ネタのテキストファイル ※行にスペースを含む ``` (ローカルのパス情報1) (ローカル の パス情報 2) ・ ・ ・ (ローカルのパス情報n) ``` ### 補足情報(言語/FW/ツール等のバージョンなど) OS Win10 Pro PS Name Value ---- ----- PSVersion 5.0.10586.0 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.10586.0 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1
回答: > > $mySelf = "プログラム2のパス" > > > これはファイル名だけでなくフォルダー部分も含めているでしょうか。PowerShellではカレントディレクトリにあっても`.\program2.ps2`のように書かないと実行してくれません。 それと、複数のパラメータを一つの文字列にすると、それを一つのパラメータとしてスクリプトに渡されてしまい、期待通りに動かないので、コマンドライン全体を一つの文字列にしてから`Invoke-Expression`で実行すれば良いです。 こんな感じ。 ``` $MyCMD = $mySelf + " -iPath ""$TextLine"" -oPath ""$oPath"" " Invoke-Expression $MyCMD ```