使用に同意するものと見なされます。コード提供終了済みコンテンツ申し訳ありません。リクエストされたコンテンツは削除されています。自動的にリダイレクトされます。「管理者として実行(A)...」を選択。(3)ユーザアカウント制御ダイアログボックスが表示される。「はい」を選択して続行。(4)一瞬コマンドプロンプトが表示されるが、すぐに消える。.」が表示されキー入力待ち状態になるはず。[試したこと](a)UAC有効/無効に関係なく、現象は同じ。単純にダブルクリックとして実行すると、正常に実行される。(c)test.batをc:\testdir\配下に置くと、「管理者として実行(A)...」でも正常に実行される。=>いろいろパスを変えて試したが、"("を含むパスだと今回の現象が発生。[知りたいこと]特に回避策は望まないが、何故このような現象が発生するのか、理由を知りたい。結局、cmd.exeを経由するかどうかの違いと解釈しました。open/commandのときもcmd.exeによって*.batファイルは実行されます。調べた結果open/commandのとき、%1には""で囲ったパスが入る。runas/commandのときは、%1には""で囲っていないパスが入る。いう挙動をすることがわかりました。%*」に囲っていないパスを入れることに合わせた挙動と思われます。runas/commandのときは1重で囲ってあるので特殊文字の影響を受けてしまいます。open/commandはパスが2重に""で囲うことになるために、特殊文字をエスケープしなくとも正しいパスとして処理されているようです。テキストが有効になります。適用されている(?)のかもしれません。%*となっているのが正しい設定ということになりそうです。"バッチファイル.bat"が実行されます。#レジストリのHKEY_CLASSES_ROOT\batfile\shell\runas\commandで指定されてます。/?で表示させてみると以下の記述があります。ラインとして処理されます。----つまり、特殊文字に該当するためにCmd.exeはバッチファイルをを実行せずに終了します。」のバグとは言い切れないけど、想定外の挙動だと思います。引数にするときは特殊文字をエスケープする(特殊文字の前に^を追加する)ので回避策できるみたいですが、わざわざエスケープするぐらいなら名前を変更しますよね。いったコマンドが実行されるかが書いてあります。見比べてみてください。=>例えば、私が作成したbatファイルを誰かに提供し、「好きなフォルダにコピーして使用してください」とは言えなくなります。「"("などを含まないパス上に置いてください」という注釈をつける必要がでてきます。注釈をつけざる得ない点は仕方ないと考えます。管理者として実行することを求めている以上、何か言及されるドキュメントがあるのですよね?そうであれば、そこに一緒に書くことでしょうか。考えられますが、ちょっとナンセンスかな。」のバグとは言い切れないけど、想定外の挙動」と書かれてますが...この現象はやっぱり不具合であると思います。(略)=>しかし、エクスプローラからメニューを選らんで実行するのに、パス上に特殊文字があるかどうかによって実行できないのは、エクスプローラの不具合だと思います。想定外の挙動であり、不具合でしょう。(関連づけのレジストリ構造自体、エクスプローラー以外からも利用できるため)ただ、すぐには直らないと思いますし、もしかしたらずっと直らないかもしれません。直してほしいとアピールしつつ、注釈をつけるしかないと思います。書き換えるのは微妙だし。質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。"バッチファイル.bat"が実行されます。#レジストリのHKEY_CLASSES_ROOT\batfile\shell\runas\commandで指定されてます。/?で表示させてみると以下の記述があります。ラインとして処理されます。----つまり、特殊文字に該当するためにCmd.exeはバッチファイルをを実行せずに終了します。」のバグとは言い切れないけど、想定外の挙動だと思います。引数にするときは特殊文字をエスケープする(特殊文字の前に^を追加する)ので回避策できるみたいですが、わざわざエスケープするぐらいなら名前を変更しますよね。9:59返信|引用0サインインして投票gekka様、返信ありがとうございました。当方は、Linuxなどの経験はあるものの、Windowsでの経験が乏しく、レジストリ周りなどは殆ど知りませんでした。」時の処理が、HKEY_CLASSES_ROOT\batfile\shell\runas\commandで指定されている件、了解しました。今回の現象が発生している、という点も了解しました。次のような疑問も発生しました。」すると今回の現象が発生するのに、単純にダブルクリックして実行すると、正常に動作するのは何故か?=>たぶん、「単純にダブルクリックした場合は、cmd.exeを経由しない」というのが理由と推測しますが...=>単純にダブルクリックした場合にも、レジストリのどこかの設定に書かれていて、それが実行されるのか、といった点を調査したいと思います。=>Linuxなどの経験からすると、やや不思議な気がします。batファイルはLinuxでいえばshスクリプトに当たると思います。」のときのみcmd.exeが動く、というのは何故なのか理解できませんでした。引数にするときは特殊文字をエスケープする(特殊文字の前に^を追加する)ので回避策できる」=>この点は理解できるのですが...例えばこれが「ファイル名」のみの問題であったならば、batファイルにそのような特殊文字を含まないファイル名をつければ解決します。パス名に特殊文字を含む場合にも今回の現象が発生するのが問題です。=>例えば、私が作成したbatファイルを誰かに提供し、「好きなフォルダにコピーして使用してください」とは言えなくなります。「"("などを含まないパス上に置いてください」という注釈をつける必要がでてきます。」のバグとは言い切れないけど、想定外の挙動」と書かれてますが...この現象はやっぱり不具合であると思います。=>コマンドプロンプトを開き、そこでcmd.exeを使用するのならば、cmd.exeに与える引数に特殊文字が含まれている場合にはエスケープする、というのは使用側の責任だと思います。=>しかし、エクスプローラからメニューを選らんで実行するのに、パス上に特殊文字があるかどうかによって実行できないのは、エクスプローラの不具合だと思います。=>OS提供側からは、「いや、それはエクスプローラの不具合でなくcmd.exeの仕様で...」という反論があるかも知れません。「cmd.exeがそういう仕様ならば、何故エクスプローラで特殊文字を含むパスをエスケープしてからcmd.exeに渡さないのか」となります。「管理者として実行」を選んでいるのですから。「管理者として実行」でcmd.exeが実行されるのは、あくまでOS内部の事情に過ぎません。=====================================================以上、宜しくお願い致します。いったコマンドが実行されるかが書いてあります。見比べてみてください。=>例えば、私が作成したbatファイルを誰かに提供し、「好きなフォルダにコピーして使用してください」とは言えなくなります。「"("などを含まないパス上に置いてください」という注釈をつける必要がでてきます。注釈をつけざる得ない点は仕方ないと考えます。管理者として実行することを求めている以上、何か言及されるドキュメントがあるのですよね?そうであれば、そこに一緒に書くことでしょうか。考えられますが、ちょっとナンセンスかな。」のバグとは言い切れないけど、想定外の挙動」と書かれてますが...この現象はやっぱり不具合であると思います。(略)=>しかし、エクスプローラからメニューを選らんで実行するのに、パス上に特殊文字があるかどうかによって実行できないのは、エクスプローラの不具合だと思います。想定外の挙動であり、不具合でしょう。(関連づけのレジストリ構造自体、エクスプローラー以外からも利用できるため)ただ、すぐには直らないと思いますし、もしかしたらずっと直らないかもしれません。直してほしいとアピールしつつ、注釈をつけるしかないと思います。書き換えるのは微妙だし。質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。14:20返信|引用モデレータ0サインインして投票Azulean様、返信ありがとうございます。いったコマンドが実行されるかが書いてあります。見比べてみてください。