質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

3回答

12201閲覧

batファイルにてpowershellコマンドにより他バッチを呼び出す際の標準出力について

javabigineer

総合スコア87

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2017/01/20 08:23

編集2017/01/23 05:48

ある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の実行結果この記載の仕方では出力できないのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

私も同じ処理を実行する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"

投稿2017/03/03 08:16

s_yoshi

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

原因までは不明ですが、リダイレクト記号の後ろに":"(コロン)や"%"(パーセント)などが存在すると事象が発生するようです。
エスケープ文字に関する処理に癖があるのだろうかと思いますが、""(円マーク)は正常に処理されていました。
暫定定期な回避方法としては、絶対パス表記では無く、相対パス表記にしてみてはどうでしょうか?

投稿2017/01/21 06:57

Takeda_Kazuhito

総合スコア369

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

%~dp0%Delcomn.bat

の0とDの間の%はどういう意図ですか?
バッチファイル中で、変数展開の意味以外で%が必要なときは、%%と書きます。

投稿2017/01/20 09:07

otn

総合スコア84380

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

javabigineer

2017/01/23 05:44 編集

0とDの間の%が不要でした。 エラ―が消えファイル作成はされましたが、何も出力されません。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問