

HTMLと画像(ABC.GIF)、プログラム(123.EXE)、BATファイルをCDに記録して配布したいと考えています。
autorun.infでHTMLファイル(index.html)を実行します。
このHTMLファイルには、同じ場所にあるBATファイルへリンクが貼られています。
◎BATファイルの内容(Windows Vista用)
COPY ABC.GIF C:\TEST
COPY 123.EXE "%USERPROFILE%\Desktop\"
◎BATファイルの内容(Windows XP用)
COPY ABC.GIF C:\TEST
COPY 123.EXE "%USERPROFILE%\デスクトップ\"
ブラウザで表示して実際にBATファイルを実行したところ「ファイルが見つからない」というエラーが表示されCOPYコマンドは実行されませんでした。
確かに指定したパスにファイルは存在します。
その証拠に、リンクからではなく、直接BATファイルを実行すると希望した結果が得られました。
何か考えられることはございますでしょうか。
解決方法をお教えいただければ幸いです。
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
★ご指摘有り難うございます。
・『Install.vbs』にもドライブをつける必要があるようですね。難しい!どうしよう?
『HTML』ソースに JavaScript か、VBScript でドライブ取得を行って、ユーザにボタンを
押してもらったらば JavaScript などで分岐して最初の2つのバッチファイルでも実行する
仕組みはどうでしょう。このとき、バッチファイルに引数を取り、その引数にドライブ名を
指定するようにすれば良いのでは。→引数には A:、B:、C:、D:、E: とコロンをつけておく。
◎BATファイルの内容(Windows Vista用)
COPY %1\ABC.GIF "C:\TEST"
COPY %1\123.EXE "%USERPROFILE%\Desktop"
◎BATファイルの内容(Windows XP用)
COPY %1\ABC.GIF "C:\TEST"
COPY %1\123.EXE "%USERPROFILE%\デスクトップ"
または、引数に2個指定するタイプで
◎BATファイルの内容(Windows XP/Vista両用)
COPY %1\ABC.GIF "C:\TEST"
COPY %1\123.EXE "%USERPROFILE%\%2"
この場合は
『sample.bat E: デスクトップ』が Windows XP用の引数です。
『sample.bat E: Desktop』が Windows Vista用の引数です。
『HTML』ソースに JavaScript か、VBScript でCDドライブの取得する方法を探ってみて下さい。
VBScript スクリプトならば前回の回答例を参考に『HTML』ソースに埋めこれるかもしれません。
私は『HTML』ソースに JavaScript を組み込むことは知っていますが、VBScript の方法は
忘れてしまいました。→検索すれば見つかるかも。
以上。参考に!
Oh-Orange様
またまた、ありがとうございました。
ご提示いただきました案を含めて、いろいろと工夫してみたいと思います。
本当にご親切にありがとうございました。
今後とも宜しくお願いいたします。
No.3
- 回答日時:
'Install.vbs
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
If Install(GetCDROM()) Then
MsgBox "インストールを終了しました。",vbOKOnly,"確認"
Else
MsgBox "スクリプトの OS 指定が間違っています。",vbOKOnly,"エラー"
End If
'インストール処理
Function Install(strDrive)
If WScript.Arguments.Count <> 1 Then
Install = 0
ElseIf WScript.Arguments(0) = "XP" Then
Install = 1
strPath = objShell.ExpandEnvironmentStrings("%USERPROFILE%\デスクトップ\")
ElseIf WScript.Arguments(0) = "Vista" Then
Install = 1
strPath = objShell.ExpandEnvironmentStrings("%USERPROFILE%\Desktop\")
Else
Install = 0
End If
If Install Then
'コピー処理
objFS.CopyFile strDrive & "ABC.GIF", "C:\TEST\"
objFS.CopyFile strDrive & "123.EXE", strPath
End If
End Function
'CD-ROM ドライブの検査
Function GetCDROM()
For Each objDrive In objFS.Drives
If objDrive.DriveType = 4 Then
GetCDROM = objDrive.DriveLetter & ":\"
Exit Function
End If
Next
GetCDROM = "\"
End Function
この回答への補足
Oh-Orange様
早速のご回答、また丁寧かつ親切にご対応いただき、本当に感謝しております。
いただいたソースを元に試してみたのですが、BATを起動しても反応がありませんでした。
いろいろと試してみたところ、ひとつ気がついたことがあります。
いちばん最初の話に戻るのですが、BATにてCD-ROMのドライブレターをSETしなければいけないのではないかと。
SETした後、%DRIVE%Install.vbsで指定しなければいけないのかなと考えました。
そこで、BATを経由せず、HTMLから直接Install.vbsにリンクを貼ってみようかと考えました。
分岐の部分でBATを使わずにInstall.vbsをXP用とVista用の2つ作成して'コピー処理を加工してチャレンジしてみます。
もちろん、Oh-Orange様の方で他にお知恵がございましたら、是非とも拝借したいと思います。
宜しくお願いいたします。
No.2
- 回答日時:
★『VBScript』ならば CD-ROM ドライブが調べられます。
・OS が Windows XP、Window Vista 専用ならば『VBScript』が利用できます。
そこで、バッチファイルは下のようになります。引数の Vista、XP 意外だとエラーになります。
◎BATファイルの内容(Windows Vista用)
CSCRIPT.EXE Install.vbs //B Vista
◎BATファイルの内容(Windows XP用)
CSCRIPT.EXE Install.vbs //B XP
最後に:
・次の回答で『VBScript』のソースを載せます。
すてべの内容をコピーしてメモ帳などに貼り付けて下さい。
ファイル名は『Install.vbs』です。→別名のとき、バッチファイル内の変更あり。
・スクリプト内で CD-ROM のドライブを検査して取得しています。
ファイルのコピーもスクリプト内のコピー命令で行っています。
・『コピー処理』の『ABC.GIF』、『123.EXE』、『C:\TEST』だけ編集して下さい。
コピー命令の書式は『objFS.CopyFile コピー元, コピー先』となります。
文字列は必ず(”)文字で囲って下さい。バッチファイルと違い省略できません。
複数の文字列を結合するには『&』文字で繋げます。ソースを参考に編集を。
・以上です。→正常に実行できるかテストして下さい。
No.1
- 回答日時:
★BATファイルの先頭行に『SET DRIVE=E:\』を追加して下さい。
・仮に CD ドライブを E: とします。→違う場合は書き換えて下さい。
・下のサンプルをどうぞ。
◎BATファイルの内容(Windows Vista用)
SET DRIVE=E:\
COPY %DRIVE%ABC.GIF "C:\TEST"
COPY %DRIVE%123.EXE "%USERPROFILE%\Desktop"
◎BATファイルの内容(Windows XP用)
SET DRIVE=E:\
COPY %DRIVE%ABC.GIF "C:\TEST"
COPY %DRIVE%123.EXE "%USERPROFILE%\デスクトップ"
最後に:
・ブラウザで BAT ファイルを実行すると C ドライブの %USERPROFILE% フォルダで
バッチファイルを起動することになります。するとそのフォルダに『ABC.GIF』や
『123.EXE』は存在しないため『ファイルが見つからない』エラーになるのです。
・そこで BAT ファイルの先頭に環境変数『DRIVE』でドライブ・パスを設定して
『COPY』コマンドで参照しています。もちろん、COPY コマンドの先頭に『E:\』という
ドライブ名+パスを追加しても良いでしょう。
なお、ドライブ名が固定の場合は上手くいきますが、インストール用の BAT ファイル
のような気がします。この場合はドライブ名を入力してもらう仕組みが必要になります。
個人での利用でしょうか?それともインストール用の BAT ファイルでしょうか?
・よくは分かりませんが、上記の方法でコピーできるので解決すると思います。
・以上。おわり。
この回答への補足
Oh-Orange様
回答ありがとうございます。
なるほど、ドライブレターをSETする必要があるわけですね。
最後にご指摘いただきましたとおり、この内容はインストールCDに使いたいと考えています。
そこで、再度、お知恵をお貸しください。
CD-ROMが挿入されているドライブのレターを、環境変数などを使ってSETすることは可能でしょうか。
もし無理な場合、ユーザーにレターを入力させるといった方法はあるのでしょうか。
なにとぞ宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- その他(プログラミング・Web制作) BATファイルについて 2 2023/07/20 20:18
- その他(プログラミング・Web制作) テキストから指定行を抜き出したい 2 2022/07/13 19:35
- その他(コンピューター・テクノロジー) batファイルでPCの設定内容やプロパティーを取得したいのですが、コマンド1個で1ファイルとなるのを 2 2022/04/27 15:27
- その他(プログラミング・Web制作) バッチファイルでPCのモデル名を取得したい 1 2022/03/31 10:58
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
このQ&Aを見た人はこんなQ&Aも見ています
-
html上で、バッチやexeファイルの起動をしたい
ホームページ作成・プログラミング
-
htmlからbatファイルを起動する
HTML・CSS
-
ブラウザーのリンクをクリックするとサーバー上の.batファイルを実行できるようにしたいのですが
HTML・CSS
-
-
4
HTMLからフォルダを開きたい
HTML・CSS
-
5
JavaScriptでコマンドプロンプト
JavaScript
-
6
【HTML】INPUTの値を引数にBAT起動
HTML・CSS
-
7
VBAでネットワーク上のバッチジョブを実行したい
その他(プログラミング・Web制作)
-
8
JavaScriptからVBScriptの呼び出しについて
JavaScript
-
9
表示中のURLなどをバッチファイルに渡す
その他(プログラミング・Web制作)
-
10
ActiveXobjectが作成できない
JavaScript
-
11
htmlまたはJavascriptからファイルを引数つきで起動する。
HTML・CSS
-
12
一つのTeratermのマクロで複数のTeratermのウィンドウを立ち上げることはできますか?
サーバー
-
13
ローカルのHTMLからexeファイルを起動したい
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトで作成日時...
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
「営業秘密の漏洩」について
-
.NETアプリを作ったときの .man...
-
バッチ処理で追記コピーしたい
-
リンクの張り付けかたを教えて...
-
htcファイルとはなんですか?
-
○○○.zip.001というファイルが開...
-
#include <Windows.h>というヘ...
-
VC++でファイル比較の方法
-
makeでPHONY使い方が分からない
-
既にファイルが開いているのな...
-
コマンドプロンプトで、指定し...
-
「ブルーファイル」と「グリー...
-
jarファイル
-
jarファイルはzipファイルと同...
-
warファイルをEclipseでプロジ...
-
MFCのダイアログのリソースが更...
-
ExcelVBA 他のアプリケーション...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
コマンドプロンプトで作成日時...
-
.NETアプリを作ったときの .man...
-
リンクの張り付けかたを教えて...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
jarファイル
-
「ブルーファイル」と「グリー...
-
ファイルが開かれているかどう...
-
バッチ処理で追記コピーしたい
-
VBAのバイナリ出力について
-
公文書のxmlファイルの開き方が...
-
コマンドプロンプトで、指定し...
-
監視ツールを入れさせられまし...
-
自分で作成した重要ファイルを...
-
HTMLからのBATファイル実行
-
VBSが起動しない
-
他のMDBのマクロを実行する方法
-
Batファイルをバイナリ形式にす...
おすすめ情報