性格悪い人が優勝

HTMLでランチャーを作成しています。

HTMLをCDRに焼きこみ、autorunで自動再生させ
HTML内のボタンをクリックすれば
プログラムをパソコン(WindowsXP)へ
ダウンロードできるというものです。

困っていることですが、
HTML内のボタンをクリックした際にバッチファイルを立ち上げ、
DLLファイルなどを指定のディレクトリへ
自動的にコピーを行いたいのですが、
ホームディレクトリがCドライブとなってしまっているため、
CDR内のファイルをうまくファイル指定することが出来ません。

CDRは固定の客先に配布するわけではないので
バッチファイル内は絶対パス(ドライブ指定など)では書けません。

上記のような状況ですが、
PCのCDRドライブ名をバッチファイルから
DOSコマンドなどで取得することは可能でしょうか。
また、ホームディレクトリをバッチファイル内で
強制的に変更することは可能なのでしょうか。

DOSに関する知識も乏しく、プログラミングに関しても
胸を張れるほどの実力もなく、困っております。

皆さんのお力をお貸しください。
よろしくお願いいたします。

A 回答 (1件)

'下記を拡張子 VBS で保存して試してみて下さい


'WSHに関しては下記が参考となると思います
http://wwwroy.hi-ho.ne.jp/mutaguchi/wsh/wshtop.htm
'html に関してはサッパリ分かりませんのでご勘弁を
'多分・・Windows2000以降であれば大丈夫かも。
'>DLLファイルなどを指定のディレクトリへ
'とあるのでVBなどでは、フリーのインストーラも有るのでは?
'アンインストールの事も考えてあげないといけないし・・
'社内向けand単一ファイルなら下記の感じでも構わなくもありませんが
'顧客相手では大問題かと?
'とりあえずご参考までに

txtOut=""
Set objShell = CreateObject("Wscript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")

For Each objDrive in objFso.Drives
txtOut = txtOut & objDrive.DriveLetter & "ドライブ - " & _
drvType(objDrive.DriveType) & vbCrLf
Next
txtOut = txtOut & vbCrLf & "ここのフォルダは" & objShell.CurrentDirectory
txtOut = txtOut & vbCrLf & "ここのドライブは" & objFso.GetDriveName(Wscript.ScriptFullName)
Wscript.Echo txtOut

IF objFso.FolderExists("c:\後で消してね") = Faulse Then
objFso.CreateFolder("c:\後で消してね")
End If
objFso.CopyFile Wscript.ScriptFullName,"c:\後で消してね\あれ.txt",true

Function drvType(tyNum)
Select Case tyNum
Case 1
retval = "フロッピーディスク"
Case 2
retval = "ハードディスク"
Case 3
retval = "ネットワークドライブ"
Case 4
retVal = "CD-ROM/DVD"
Case 5
retVal = "RAMディスク"
Case Else
retval = "不明"
End Select
drvType = retVal
End Function
    • good
    • 0
この回答へのお礼

へぇー(@o@;)。。すごい。

作成いただいたソースをご指示通りvbsで保存したら
ドライブやフォルダ名が表示されました。

ただ、相手先のPCにCD-ROMが複数接続されている場合、
こちらが作成したものがどのドライブに接続されるのかわからないので、
残念ながら問題解決にはつながらないのではと感じました。

色々調べて

1)C:\test.batを新規作成
2)test.batに下記を記述

set bat_path=%0
echo %bat_path:~0,-8%

3)「C:\test.bat」と実行すると「C:\」という
情報が取得できる

この動作を応用してドライブ情報や現在実行している
ファイルが存在する位置を取得することができました。

丁寧に回答してくださり
ありがとうございました。
勉強になりました。

お礼日時:2006/08/31 16:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!