あるサーバーからshell関数を使用して別のサーバーにあるexeを起動したいと考えています。
自分のサーバーとは別のサーバー(IPアドレス:〇,〇,〇,〇)にあるexe(example.exe)を起動したいのですが、自分の環境で
shell("\〇.〇.〇.〇\D:\Pr***\a**\bin\Debug\example.exe")
と入力してもファイルが見つからないというエラーが発生します。
アドレス名、パス名はともに間違っていません。
引数にはどうやって入力すればよいのでしょうか?
他サーバーを動かすことがセキュリティ的に危険という事は承知していますが
ひとまず置いておく方向でお願いします。
別のサーバー上に配置してある実行ファイルを、自分の(実行しようと操作している)マシン上で実行するのですか、それとも別のサーバー上で実行するのですか。それぞれで対処方法が異なります。
そもそも、「\\〇,〇,〇,〇\example.exe」の〇の部分にどのように指定しているのか分かりません。詳細を追記願います。一般的にはカンマ','もファイル名やPATH名には利用しません。
windows共有だとすると、「共有名」もない気がする。
\\hostname\共有名\example.exe
dodox86さん
わかりにくい説明をしてしまい申し訳ありませんでした。
正確に言わせていただくと、「別サーバー内でアプリを起動し、別サーバ内で処理し、出た結果を自分のサーバーに返したい」と考えていました。また〇の部分は別サーバーのIPアドレスでカンマ’,’はピリオドと間違えています。修正いたします。申し訳ございません。
Y.Hさん
こちらもすみません、横着して省略して書いてしまいました。
共有名も入っております。合わせて修正いたします。
ダブルクォーテーションで括ってないですけど、そこも間違いでしょうか。
ま、そもそも別サーバ「で」起動することはshellではできませんが。
UNCパスの使い方を間違っていますね。共有名も無いですし。Shellの引数としてはコマンドプロンプト上で同じように指定して実行できるのが条件です。例えば
C> \\192.168.1.10\D:\Pr***\a**\bin\Debug\example.exe
のように実行できるなら、Shell自体は使えます。が、ttyp03さんが既に指摘されているようにShellでは質問者さんの要望は満たせないので、既にいただいている回答を検討することになると思います。
。。。ttyp03さんが既に回答されていました。(失礼しました)
回答3件
あなたの回答
tips
プレビュー