質問: あるbatファイルから、powershellコマンドを使用して他バッチを呼び出す処理を作成しており、その他バッチの実行結果を標準出力(エラー出力もリダイレクト)させようと思って下記のように記述しました。 ``` powershell.exe -Command Start-Process """"%~dp0%Delcomn.bat"" -Verb Runas > C:\tmp\delcom\result.log 2>&1 ``` powershell.exe -Command Start-Process """"%~dp0%Delcomn.bat"" -Verb Runas のみであれば正常に動くのですが、標準出力させようとすると ``` 文字列に終端記号 " がありません。 + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordEx ception + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString ``` というエラーが出てしまいます。 知識がなく、よく理解していないのでなぜこのようなことになるのかわかりません。どなたかご教授いただけると嬉しいです。。 追記) dと0の間の%が不要にもかかわらず記載していたのがエラーの原因だったようです。 ファイル作成はされましたが、何も出力されません。。 実行呼び出しをされたDelcomn.batの実行結果この記載の仕方では出力できないのでしょうか?
回答: 私も同じ処理を実行するbatを書いた経験があります。正常にログに出力されているので、その内容を貴方の内容で記述してみました。 powershell.exe -Command Start-Process "%~dp0Delcomn.bat -Verb Runas 2>&1 | Add-Content -Path C:\tmp\delcom\result.log" これで、うまく実行できるか確認してみてください。 尚、この場合はコマンドプロンプトには何も表示されません。ログに出力されるのみです。 画面とログに同時出力させたい場合は、以下のようになります。 powershell.exe -Command Start-Process "%~dp0Delcomn.bat -Verb Runas 2>&1 | Add-Content -Path C:\tmp\delcom\result.log -PassThru"