ブラウザからバッチファイルをパラメータ付きで起動するには?

[上に] [前に] [次に]
しの [E-Mail] 1999/11/18(木) 13:31:36
WWWページ上のボタンまたはリンクをクリックしたときに、
dosバッチファイル(xxx.bat)をパラメータ付きで起動したい
のですがどうすればいいでしょうか。(単に起動するだけなら
a href=xxx.batで起動できるのですが)
環境はwin95+IE4です。

ちゃいパパ [HomePage] 1999/11/18(木) 13:50:54
単に起動がOKなら以下を試しては〜

a href=xxx.bat?p1+p2

または

a href=xxx.bat?p1+p2

(p1、p2はパラメータ)

しの [E-Mail] 1999/11/18(木) 16:14:52
ちゃいパパさんの
>a href=xxx.bat?p1+p2
>または
>a href=xxx.bat?p1+p2
一応試しましたが、だめでした。
上と下の違いが分からないのですが。
起動するのはCGIではなくローカルのバッチファイルです。

wosamu 1999/11/18(木) 16:27:21
それでは
a href="xxx.bat p1 p2"
ってやってみたらどうです?

ちゃいパパ 1999/11/18(木) 17:09:06
ごめんなさい! 適当なことかいて〜

わたしもいろいろやってみましたが...。できませんでした。
多分、DOSが16ビットAPでブラウザが32ビットAP
のせいかも?

誰かフォローお願いします!!

wosamu 1999/11/18(木) 17:13:39
私もいい加減なことかいていますね。
なんとなくできないような気がしますけど。

J.Naka 1999/11/19(金) 22:29:29
>(単に起動するだけならa href=xxx.batで起動できるのですが)

バッチファイル起動可能ならば、
目的の起動コマンドを xxx.bat p1 p2 とすると、
xxx1.bat 内に、その起動コマンドを記述して、
a href="xxx1.bat"
で良いのでは? 試してないですが(^^;
#しかし、バッチが起動するとは、セキュリティで端から無理と思ってた。。。。こりゃ使えるぜ、(^^)

J.Naka 1999/11/19(金) 22:48:39
あれー実際にやってみると、コマンドライン引数はおろか、
<A href="test.bat">test.bat</A>
は起動できないです。

ローカルサーバーでは、
「CGIエラー Content-Typeヘッダがみつかりません。」

ローカルファイルのHTMLとしては、
test.batの内容が出るだけです。

なにかセキュリティとか関係あるの?
IE4,WIN95の環境

Nobu3 1999/11/19(金) 23:28:36
「http://」では無理でしょう。「file://」の話だと思います・・・。
「file://」にしても、引数までは無理みたい。
「?p1+p2」とか「 p1 p2」とか「/p1/p2」とかやってみましたけどね・・・。
それとも「file://」独自の文法ってあるのかな・・・?
MicroSoftに聞いてみるとか・・・。

っていうか、何故そんなことをする必要があるのかが知りたい今日この頃・・・。

しの [E-Mail] 1999/11/20(土) 01:43:31
file://の話です。「ローカルの」ってのはちょっと表現が
あいまいでしたか。とりあえずPC上で試していたので絶対
パスで書いてませんでした。すみません。

で、やりたいことですが、少し長くなります。

<やりたいこと>
1.CGIでCSVファイルをつくる
2.CSVファイルができたらブラウザに「できたよ」画面を表示
3.「できたよ」画面上のボタンを押すとCSVファイルを ダウンロード
4.ダウンロードしたCSVファイルをユーザがEXCELで使う。

この3.の部分が問題です。

<環境>
・イントラネット
・サーバ:IBM AS400
・クライアント:WIN95+IE4

<条件等>
1.サーバで作成されるCSVファイルは1種類ではない。
  つまりその場合ごとにファイル名が異なる。
2.サーバで作成されるCSVファイルはASCIIではなくEBCDICである。
3.DOSのFTPを使えばASCIIファイルでダウンロードできるのは
  確認済み。ただしASCIIモードになっていること、漢字コードを  SJISに変換するFTPサブコマンドを送ること、が必要である。

<私が考えた案>
1.ブラウザでURL指定でダウンロード
2.DOSのBATファイルからFTPを起動してダウンロード
  BATファイルでは最初にFTPサブコマンドファイルを作成し、
 FTP.EXEにそのサブコマンドファイルを読みこませる。

<問題点>
案1.バイナリでダウンロードされるのでEBCDICのまま(PCで扱えない)
案2.毎回ダウンロードするファイル名が違うのでBATファイルにパラメータで
  与えなければならない。

<考慮点>
1.サーバー上でEBCDICからASCIIに変換するというのはとりあえずなし。
 他にどうしても方法がなかったら考える。
2.クライアントPCにFTPソフトを導入するというのはなし。ブラウザ上の
 操作のみで完結させたい。

<その他>
案1については「ブラウザのFTPをASCII形式にできるか」という別スレッド
で質問してます。「URLのあとに;TYPE=Aと付けると」ASCIIモードになると
いうRESを頂き、試してみましたがうまくいきませんでした。ブラウザが対応
してないのかサーバが対応してないのかは不明です。(もしASCIIモードに
できたとしても漢字コードの変換の問題が残るが)

サーバがAS400なんてケースはあまりないですよね。ちなみにCGIはRPGです。
誰かほかにいません?(クロネコヤマトのwebサーバはIBM汎用機だそうな)

Nobu3 1999/11/20(土) 03:03:14
挙動を少し眺めてみて思ったのですが、
バッチファイルは「一時フォルダにダウンロードして実行」するのと同じような動作をしてるように思います。
もし、本当にそうだとすると「?」以降が無視されるのも納得です。

J.Nakaさん。
実行できないのは「フォルダオプション」の設定が原因でしょう。たぶん。
「MIMEタイプ」あたりがあやしそうです。

J.Naka 1999/11/20(土) 09:48:08
うっぅぅぅ
<A href="fiile://c:/test/test.bat">
<A href="file://test.bat">
<A href="file:test.bat">
どれも、起動しません(TT)

J.Naka 1999/11/20(土) 09:51:06
Re:Nobu3さん
>「MIMEタイプ」あたりがあやしそうです。
ども、見てみます。
#ブラウザキャッシングで一つ前の投稿内容がずれてます(笑)

ちゃいパパ 1999/11/20(土) 11:46:26
以下は普段よくします!

>1.CGIでCSVファイルをつくる
>2.CSVファイルができたらブラウザに「できたよ」画面を表示
>3.「できたよ」画面上のボタンを押すとCSVファイルを ダウンロード
>4.ダウンロードしたCSVファイルをユーザがEXCELで使う。

オフコンが wwwサーバ になるんですか〜 ちょっと驚き!
AS400がwwwサーバになるんだったら、漢字コードまで面倒みてくれていないんですか〜
CSVファイルを作る時、面倒みてくれていたら簡単なのに〜
EUC,SJIS,JISならブラウザで対応できますよねぇ。

あと、RPGでCGIですか、いろんな環境がありますねぇ。勉強なりました!

Nobu3 1999/11/21(日) 00:30:26
file:///c|autoexec.bat
な感じで指定してみましょう。
ありそうで、危険かもしれませんが・・・。

しの [E-Mail] 1999/11/21(日) 02:16:50
<a href=file://c:\test\test.bat>file://c:\test\test.bat</a>
<a href="c:\test\test.bat">c:\test\test.bat</a>
<a href=test.bat>test.bat</a>
私のPCではこれで起動します。>>J.NaKaさん
(もちろんHTMLとtest.batはc:\testにある)

J.Naka 1999/11/21(日) 10:59:26
動かない原因は、MIMEタイプ。というよりも、*.batをエクスプローラからクリックした時に標準で起動するのでなく、エディターが開くようにするため、元の項目で「open」というアクション(標準動作)を削除していました。
確か、*.batの標準アクションはファイルタイプダイアログからは削除できなくて、レジストリをイジッタ記憶あります(^o^)がっぴょ〜ん

つまり、元のアクションの復帰方法が分からない。。。(TT)

J.Naka 1999/11/22(月) 00:36:28
自分はまだ、バッチの起動できてないのですが、想像で、

<a hrif="'test.bat p1 p2'">
となんかとか、システムに渡るコマンドライン全体をコロンで囲めばいけるかも。

無責任官庁 1999/11/22(月) 09:57:50
> <a href="c:\test\test.bat">c:\test\test.bat</a>
> <a href=test.bat>test.bat</a>

実際にWebサーバーたててやった時って、この二つの意味って
違いますよね?
(前者は、下記の1に。後者は下記の2に相当)
ちょっと混同してるようで、それがまた混乱を・・・

1:ローカルにあるBATを、Webサーバーが吐き出すHTMLで実行
2:WebサーバーにあるBATを、ローカルにダウンロードさせつつ実行

私は見てて、“2”のパターンだと思ったのですが、どうです?
“1”のパターンは、いくらやっても引数は渡らないんですよね?
(まあ、“2”のパターンでも引数は渡りませんでしたが・・・)
MIMEタイプを変えて、“2”のパターンでやったら良いのでは?
それならCGIでBATを生成してしまえば良いだけですし・・・
(それはASCIIにしなきゃダメかな・・・)

実行するかダウンロードするかのダイアログを出しますけども、
“上記の場所から実行”を選択してもらえば・・・

ハズしてたらごめんなさい。

ねえ 1999/11/22(月) 11:48:14
パスが渡らないなら、バッチファイルにパスを渡すんじゃなくて、
パスを含むバッチファイルを(CGIで造って)ダウンロードすれば?

hiro-kim 1999/11/22(月) 15:01:39
>1.サーバー上でEBCDICからASCIIに変換するというのはとりあえずなし。
> 他にどうしても方法がなかったら考える。

基本的に全クライアントがASCIIでCSVファイルを使用するのですから,サーバ側でコード変換するのがスマートな対処だと思います。

http://www.jp.ibm.com/as400/network/internet/cgiprog/doc.htm
のどこかにヒントが隠されているかもしれません。いま現在,私の使用している回線が込み合っているためPDFが開くまで待っていられず,私は目を通していませんが。

AS400が企業の支持を得ているのは手厚いサポートにあると聞いたことがあるのですけれど,業者にはそういうノウハウはないのでしょうか。AS400で運用するWebサーバにとっては,FAQのように思いますけれど。

うに 1999/11/22(月) 15:26:45

うん、EBCDIC<>ASCII(SJIS)は、絶対あると思う。

しの [E-Mail] 1999/11/23(火) 02:43:54
[[解決]]
無責任官庁さん
> <a href="c:\test\test.bat">c:\test\test.bat</a>
> <a href=test.bat>test.bat</a>

>実際にWebサーバーたててやった時って、この二つの意味って
>違いますよね?
>(前者は、下記の1に。後者は下記の2に相当)
>ちょっと混同してるようで、それがまた混乱を・・・
>
>1:ローカルにあるBATを、Webサーバーが吐き出すHTMLで実行
>2:WebサーバーにあるBATを、ローカルにダウンロードさせつつ実行

ご指摘のとおりです。私が最初に質問したのは1のつもりだったので、
<a href=test.bat>test.bat</a>は書かないほうがよかったですね。
すみません。

2の方法は今のところEBCDIC→ASCIIの変換方法がわからないのでだめですね。
ねえさんのご意見も2と同じ意味ですよね。
もっとも変換方法がわかったらCSVファイルを変換してダウンロードすれば
いいので結局2の方法は使わないと思います。

hiro-kimさん
>基本的に全クライアントがASCIIでCSVファイルを使用するのですから,
>サーバ側でコード変換するのがスマートな対処だと思います。

まったくおっしゃるとおりです。AS400でのコード変換のやり方は
別途調査中なのですが、一応それ以外の方法も考えてみたところ、
表題のような質問がでてきたという次第です。
(最初からそういう言い方をすればよかったんですね)

結局最初の質問の結論としては
・HTMLからクライアントPC上のBATファイルを起動できるが、
 パラメータを渡す方法はない
ということのようですね。AS400のコード変換の方をよく調べてみようと思います。
みなさん、どうもありがとうございました。

Mugi [E-Mail] [HomePage] 1999/11/25(木) 09:24:19
> ・HTMLからクライアントPC上のBATファイルを起動できるが、
> パラメータを渡す方法はない
IEのセキュリティ設定を変えればできます。
ただし、WSHが必要です。
<script language="jscript">
wshshell=new ActiveXObject("WScript.Shell")
wshshell.run("〜.bat p1 p2")
</script>

J.Naka 1999/12/11(土) 04:00:17
Mugiさん、見事、HTML内から "hogehoge.com" は勿論、"*.bat p1 p2" も動作いたしました!。

#MicroSoftにあるWSHのマニュアルは読んでもさっぱりです、勿論日本語のやつ(^^;

[上に] [前に] [次に]