質問者
IE10のコマンドラインに指定できるURLの最大長について

質問
-
Windows7環境で、IE10をコマンドラインからURL指定で起動しようとすると、
起動しない場合があります。(一瞬IEらしきウインドウが起動しますがすぐに消えます。)
引数に指定するURLを変えて実験したところ,引数に指定するURLの長さが1870バイト以上の場合に起動しないようです。
(引数に指定するURLの長さは「http://~」の先頭から数えた長さです。)
なお、IEを起動したあとにアドレスバーへの直接指定すると1870バイト以上でも指定できました。下記について質問いたします。
・上記動作となる原因
・1870文字以上のURLを指定してIE10をコマンドラインから起動する方法(現象の回避方法)
・IE10で取り扱えるURLの最大長(2083バイトではない?)
すべての返信
-
コマンド プロンプトでのパラメータには、文字列長や使用できる文字に関して制限があるので、多分その制限に引っかかっているだけでは?
(だから、IE のアドレス バーに入力できる URL の長さと比較しても、意味がないかと。)下記サイトによると、コマンド プロンプトでのパラメータ長の上限は、最大で 8191 文字だそうです。
------------------------------------------------
コマンド プロンプト (cmd.exe) のコマンドライン文字列の制限
https://support.microsoft.com/ja-jp/help/830473/command-prompt-cmd-exe-command-line-string-limitation
------------------------------------------------なので質問されている問題は、パラメータ長に起因するものではないと考えられます。
そーなると URL に、コマンド パラメータで制限対象となる特殊文字が含まれている可能性が考えられると思います。
制限対象となる特殊文字についてはググれば色々と情報が見つかると思いますが、とりあえず思いつく例としては '&', '|', '>' あたりは特殊文字として扱われると思います。 -
© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2018
start iexplore.exe http:...
で起動したときの話でしょう。
win10+ie11で確認すると、2000弱より長いとurlが渡らないようです。start pageが開きます。
start http:...
なら開きます。
"start iexplore.exe http:..." でも "start http:..." でも、どっちでもいいですけど、それを実行させるのは Command Prompt や PowerShell からなのでは?
だとしたら特殊文字の制限を受けるはずで、URL を含めたコマンド ライン長が 8191 文字以下なのであれば、単に URL を '"' (ダブルコーテーション) で囲めば済む。。。というだけの話では? -
「start http:...」で開けて「start "http:..."」で開けないのは、単に start コマンドでの [コマンド] パラメータ部分を省略しているためでは?
例えば、
https://www.google.co.jp/search?ei=A677WpaxHouh8QWAsIKoAw&q=windows+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3+%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97+%26&oq=&gs_l=psy-ab.1.5.35i39k1l6.18235.18235.0.46648.1.1.0.0.0.0.0.0..1.0....0...1c.1.64.psy-ab..0.1.110.6...110.5G3ekxb4ucY
のサイトを例にすると、
start iexplore "https://www.google.co.jp/search?ei=A677WpaxHouh8QWAsIKoAw&q=windows+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3+%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97+%26&oq=&gs_l=psy-ab.1.5.35i39k1l6.18235.18235.0.46648.1.1.0.0.0.0.0.0..1.0....0...1c.1.64.psy-ab..0.1.110.6...110.5G3ekxb4ucY"
は、きちんと検索条件付きで開くが、
start iexplore https://www.google.co.jp/search?ei=A677WpaxHouh8QWAsIKoAw&q=windows+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3+%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97+%26&oq=&gs_l=psy-ab.1.5.35i39k1l6.18235.18235.0.46648.1.1.0.0.0.0.0.0..1.0....0...1c.1.64.psy-ab..0.1.110.6...110.5G3ekxb4ucY
start https://www.google.co.jp/search?ei=A677WpaxHouh8QWAsIKoAw&q=windows+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3+%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97+%26&oq=&gs_l=psy-ab.1.5.35i39k1l6.18235.18235.0.46648.1.1.0.0.0.0.0.0..1.0....0...1c.1.64.psy-ab..0.1.110.6...110.5G3ekxb4ucY
start "https://www.google.co.jp/search?ei=A677WpaxHouh8QWAsIKoAw&q=windows+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3+%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97+%26&oq=&gs_l=psy-ab.1.5.35i39k1l6.18235.18235.0.46648.1.1.0.0.0.0.0.0..1.0....0...1c.1.64.psy-ab..0.1.110.6...110.5G3ekxb4ucY"
の3つは検索条件付きでは開かない。
文字数の影響であるのなら、なぜ下記3つのケースが検索条件付きで開かないのか、教えてください。 -
© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2018
あなたも、いい加減、自分で確認してみれば?
start iexplore.exe http:...
で起動したときの話でしょう。
win10+ie11で確認すると、2000弱より長いとurlが渡らないようです。start pageが開きます。
start iexplore.exe https://www.google.com/search?q=aaaaaaaaaaaaaaaaaaaaa 1500 くらいと 2500くらい
面倒臭いけど、再度細かく調べると、2083でした。
start http:...
も同じ。前に確認したときは違ってたと思ったけど、ミスしたのかも。
- 編集済み ウィンドウズスクリプトプログラマ 2018年5月16日 10:01
-
© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2018
だから違うって。
start http:...
なら開きます。
↑ 、この説明の通りだとすれば、
start https://www.google.co.jp/search?ei=A677WpaxHouh8QWAsIKoAw&q=windows+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3+%E7%89%B9%E6%AE%8A%E6%96%87%E5%AD%97+%26&oq=&gs_l=psy-ab.1.5.35i39k1l6.18235.18235.0.46648.1.1.0.0.0.0.0.0..1.0....0...1c.1.64.psy-ab..0.1.110.6...110.5G3ekxb4ucYで、検索条件付きで開くはずでは?
-
「:/?&」以外の記号を含まないURLを使用して検証したところ,次の動作となりました。
IE10が正常起動するケース:
・start "" "<1869バイトのURL>"
・start "" "<1870バイトのURL>"
・"C:\Program Files\Internet Explorer\iexplore.exe" "<1869バイトのURL>"
・"C:\Program Files\Internet Explorer\iexplore.exe" "<1869バイトのURL>"IE10が起動しないケース:
・"C:\Program Files\Internet Explorer\iexplore.exe" "<1870バイトのURL>"
・"C:\Program Files\Internet Explorer\iexplore.exe" "<1870バイトのURL>"
※32bit版のフルパス指定でも結果は同じでした。 -
© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2018
iexplore.exeの引数urlの長さ制限
があるようですね。win10+ie11と動作が異なるところを見ると実装による制限でしょう。
start http:...
start "" "http:..."
- 編集済み ウィンドウズスクリプトプログラマ 2018年5月16日 8:10
-
すでに参照されていると思いますが。。。。
------------------------------------------------
Internet Explorer では URL に最大 2,083 文字が使用可能
https://support.microsoft.com/ja-jp/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer
------------------------------------------------なので、URL が 1870 バイト (1870 文字) ならば、文字列長の制限は関係ないと思うのです。
が、コマンドを実行する際の cmd.exe プロセスに 3rd ベンダー製 DLL がアタッチされているなら、話はちょっと変わってくるかも。
とりあえず、"Process Explorer" か "Process Monitor" を使って、コマンド プロンプト オープン時に起動される "cmd.exe" と "conhost.exe" のプロセスに、3rd ベンダー製 DLL がアタッチされていないか確認してみては?
(もしかしたら、3rd ベンダー製セキュリティ対策ソフトが、独自 DLL をアタッチさせている場合も考えられるので。)