• ベストアンサー

VBSが解らない!

kmb01の回答

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

CDドライブを見つけて、そのドライブレターを取得し、:\license.txtをつなげればいいと思います。 Function FindFirstCDDrive() dim FSO, drives, drive Set FSO = CreateObject("Scripting.FileSystemObject") Set drives = FSO.Drives for each drive in drives if drive.DriveType = 4 then FindFirstCDDrive = drive.DriveLetter exit function end if next End Function dim Target Target = FindFirstCDDrive & ":\license.txt" msgbox Target

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsprodrivetype.asp
oto31
質問者

補足

有難う御座いますm(__)m Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Target ="d:\license.txt" If FSO.FileExists(Target) Then MsgBox "準備完了", vbInformation R=inputbox("Rの値は?","焦点距離の計算") n=inputbox("材料の屈折率は?","焦点距離の計算") f=(n-1)*(1/R) x=1/f msgbox("焦点距離は"&x) Else MsgBox "CD-ROMを挿入してください", vbExclamation End If と、もともとこんな感じなんですけれど… これに回答者様のソースをどのように加えたら宜しいのでしょう? ホンっっとに勉強不足のバカでスミマセンm(__)m

関連するQ&A

  • VBSでCD-ROMドライブの認証方法

    VBSで起動したドライブがCD-ROMドライブであることを起動時に認証するように下記のように組んだんですけど、 Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Target = "D:\test.txt" If FSO.FileExists(Target) Then ふと思ったんですが必ずしもCD-ROMドライブが"D"とは限らないわけですよね。(Eだったり) そこで上記のようなTargetの指定以外CD-ROMドライブだと認証させる良い方法は無いでしょうか? 追記 VBA関連でお勧めのHP、書籍等ご紹介頂けると尚幸いです。

  • VBSでファイル作成をするとき

    VBスクリプトでファイルを生成するソースを書いたのですがそれをバッチで実行するようにしてありますが例えばPCが起動していなく実行できなかった場合次回実行時に「もしこの名前のファイルがなかったら先に 作るはずだったファイルを作る」といったようなのが欲しいと思っております。 こういうのはプログラムで先にファイル検索をさせて無かったら作るといった感じになるのでしょうか? ファイル検索をさせるVBSはFileSystemObjectを使う方法になる以外に無いでしょうか? (ウイルスソフトが反応するため・・・・・) まだこの手の記述方法がわからないのでネットでサンプルを探したのですがなかったのでご存知の方ヒントをいただけないでしょうか? よろしくお願いします。 例:VBSCRIPTを1月にタスク実行でAAA1.txtを作成。 2月にこのタスクを実行したとき先にAAA1.txtがあるかを確認してあればAAA2.txtを作る。 もし無ければAAA1.txtを作る条件を当てはめ作ってからAAA2.txtを作る。

  • VBSに関する質問

    VBSを使ってプログラムを作りたいのですが、 visual studioを使ったデバッグの方法について教えてください。 バージョンはvisual studio express 2013で最新バージョンです。 OSはwin8 64bitです。 ・とりあえず、 http://winscript.s41.xrea.com/wiki/index.php?%5B%5B%A5%A8%A5%C7%A5%A3%A5%BF%2FVWD2005%5D%5D のページにあるように、 タイトル VBSスクリプトの実行(&R) コマンド C:\WINDOWS\system32\wscript.exe 引数 $(ItemPath?) を外部ツールに登録した上で MsgBox "テスト" と書かれた適当なvbsファイルをD&Dで読み込ませてみたのですが コードの色分けが行われておらず全て同じ色になっています。 http://www.koutou-software.co.jp/junk/use-vs-project-with-vbscript.html このページのようにdimなどを青色に表示するにはどうしたら良いですか? ・MsgBox "テスト"の左横にブレイクポイントの赤い丸を付けて VBSスクリプトの実行をしたのですが、 特にプログラムを停止することなく実行されてしまうのですが どうすれば指定した位置でプログラムを止めることができますか? ・あとEXEファイルとして出力したいのですが ビルド機能が見つからないのですがどうすれば良いですか? ・http://www.koutou-software.co.jp/junk/use-vs-project-with-vbscript.html このページには Visual C++としてプロジェクトを作成し、いろいろな設定を行った後にするみたいな解説がありますが この通りやっても、wscript.exeが見つからないというようなエラーが出て 実行することができませんでした。 少し質問が多いですが よろしくお願いいたします。

  • VBSファイルを定期的に自動実行する方法

    毎日同時刻に下記のVBSファイルを自動実行したいと思います。 タスクスケジューラで実行すると download.exe は起動しますが 表示されたダイアログがアクティブ状態にならないため (タイトルバーが灰色のまま、タスクバーのボタンが点滅)、 文字入力ができないまま、処理が終了してしまいます。 1.ダイアログをアクティブにし、正常に処理を実行させるには   どのように記述すれば良いですか? 2.このVBSファイルをユーザーがログオフされている状態で   実行することは可能ですか? 恐れ入りますが、ご存じの方がおられましたら、ご教示願います。 <環境> Windows 2008 Server R2 standard (64ビット) <D:\aaa.vbs> Set objShell = WScript.CreateObject("WScript.Shell") 'ダウンロードEXEを実行 Set objExec = objShell.Exec("D:\download.exe") WScript.Sleep 1000 objShell.AppActivate(objExec.ProcessID) 'ファイルのダウンロード先を指定し、実行(ENTER) WScript.Sleep 1000 objShell.SendKeys "D:\data.txt~"

  • VBSで *.txt をサーバーにFTPするには?

    お世話になります。 早速ですが、 「ftpserver の plt00h フォルダー に *.txt をアップロードする」VBSのプログラムを作るため、 調べたところ、「ファイルをFTPするプログラムをNameSpaceで記述できる」とあったので 見てみると、JavaScript で記述してる例でした。 この例をもとに、VBSにする挑戦をしていますが、なかなかうまくいきません。 == JS sample ============================ var oShell = WScript.CreateObject("Shell.Application"); var oFolder = oShell.NameSpace("ftp://ftpusr:ftpusr@ftpserver/plt00h/") var desktop = oShell.NameSpace(0); var objFolderItems = desktop.Items(); for(var i = 0; i < objFolderItems.Count; i++) { var ofitem = objFolderItems.Item(i); if(ofitem.Name == "a.txt") { oFolder.CopyHere(ofitem); WScript.Sleep(6000); break; } } ==================================================== 上のコードをもとに、 「ftpserver の plt00h フォルダー に *.txt を,plt00vに *.org をアップロードする」 VBSのプログラム書きたいのですが、なかなかうまくいきません。 == VBS ============================================= Option explicit Dim oShell, FolderH, FolderV, desktop, objFolderItem Set oShell = WScript.CreateObject("Shell.Application") Set FolderH = oShell.NameSpace("ftp://ftpusr:ftpusr@ftpserver/plt00h/") Set FolderV = oShell.NameSpace("ftp://ftpusr:ftpusr@ftpserver/plt00v/") Set desktop = oShell.NameSpace(0) Set objFolderItems = desktop.Items() FolderH.CopyHere("*.txt") ← FTPサーバーのplt00h ヘ*.txtをアップロード? FolderV.CopyHere("*.org") ← FTPサーバーのplt00v ヘ*.orgをアップロード? WScript.Sleep(6000) ==================================================== FTPホスト     :ftpserver, FTPユーザ     :ftpusr FTP パスワード  :ftpusr FTP先DIR     :plt00h, plt00v 送信対象ファイル: :*.txt, *.org ちなみに、 ftp -s: ftp.txt の方式は、VBSで作成して、実行できました。 ご指導よろしくお願いいします。

  • バッチファイルの変数をパラメーター化

    お世話様です。 WindowsXP環境に下記バッチファイルがあります。 バッチコード内は以下の通りです。 ------------------------------------------------ set TARGET_FILE=test.txt ------------------------------------------------ この【TARGET_FILE】という変数内に格納されている【test.txt】という値を パラメーターとしてあるVBS内の変数Aがそれを受け取って処理をする・・・。 という事は可能でしょうか? 上記バッチは数種類あり、【TARGET_FILE】変数内の値がそれぞれ違います。 VBSコード内は以下の通りです。 ------------------------------------------------ Option Explicit Dim FILE FILE = ○○○←ここに上記バッチ内の【TARGET_FILE】変数の値を受け取る。 MsgBox FILE ------------------------------------------------ 各バッチは上記VBSで実行したいのです。 Msgbox程度の処理は当然バッチでも可能ですが、何個もVBSを作成するのは厳しいので、 パラメーターが可能であれば、このVBS1個で済みます。 ご存知の方がおりましたら、お知恵を拝借しても宜しいでしょうか? 何卒宜しくお願い致します。

  • batchファイルのプロンプトが消えない

    環境はwin7です batchファイルに、 d:\vbs\test.vbs と記述 test.vbsの内容は、 ループで、当日の20:00までループするプログラムです vbsの処理が20:00まで終了しないので処理が戻ってこないせいでbatchファイルを実行したときのプロンプトが消えないのだと思いますが、 exec "d:\vbs\test.vbs" にしたりしてみてもダメでした。 batchからプログラムをコールしたときに、コールしたプログラムの終了を待たずにbatchを終了する方法はありませんか?

  • 【テキストファイルへの出力ができない】

    お世話になっております。 以前こちらで質問させていただき、親切なご回答のおかげて解決したのですが、 新たに問題が出てしまいました。 ご存知の方、どうかご教授くださいませ。 WindowsVistaで、IE8を利用した場合、 IE右クリックを拡張で実行させたプログラムで、 「テキストへの書き込み」ができません。 XPでIE6を利用すると、きちんと動きます。 たとえば、http://www.happy2-island.com/vbs/cafe02/capter00207.shtml のサイトのプログラムを、【test1.vbs】という名前で保存します。 書き込み先を、同じフォルダに作った【test2.txt】というテキストファイルに指定します。 Windows Based Script Hostでvbsファイルをそのまま実行すると、ちゃんと【test2.txt】に 情報が書きこまれるのですが、 IE右クリックに登録して実行すると、【test2.txt】は白紙のままです。 特にエラーも出ないため、原因がまったくわかりません。 原因にお心当たりのある方がいらっしゃいましたら、 どうかお教え下さい。 宜しくお願いいたします。

  • 【VBS】別ファイルから1行取得後HTML出力

    お世話になります。 プログラム初心者です。 下記条件でプログラムを作成しましたが、表示がされなくて困っています。 ■VBSはHTML内に組み込み ■別ファイル(C:\vbs\version.txt)から1行読み込みHTMLで指定位置に表示 以下、プログラムです。(HTMLに関しては省略あり) <HTML> <HEAD> </HEAD> <TITLE>テスト</TITLE> <BODY> 略 <script language="VBScript"> <!-- Dim objData Dim objFSO ' FileSystemObject Dim objFile ' ファイル読み込み用 Sub SetVersion() Set objFSO = CreateObject("Scripting.FileSystemObject") Set objData = document.GetElementById("myData") Set objFile = objFSO.OpenTextFile("C:\vbs\version.txt") objData.innerText = objFile.ReadLine 'ファイル読み込み表示用 End Sub --> </script> <!--表示--> <span onload="SetVersion()" style="POSITION:absolute; top:120px; left:884px; font-size: 15pt; font-weight:bold; color:white; width: 96px; height: 48px;"> <CENTER> <FONT color="#ffffff" Size="2"> <div id="myData"></div> </FONT ></CENTER> </span> 略 </BODY> </HTML> 実行しても何も表示されません。 どこがおかしいのでしょうか? ご教授いただければと思います。

  • echo と%ERRORLEVEL%の値について

    今日の日付から7日前の日付をテキストファイルに保存しようとし、下記のようにスクリプトを作成しました ago7.vbs --------------------------- dim ago7d ago7d = dateadd("d", -7, now()) WScript.Quit(year(ago7d) & right(100 + month(ago7d),2) & right(100 + day(ago7d),2)) --------------------------- main.bat --------------------------- cscript //nologo ago7.vbs echo %ERRORLEVEL%>D:\log.txt --------------------------- ago7.vbsで7日前の日付を取得し、main.batで受け取り、テキストファイルに出力しています。 こちらをコマンドプロンプトから直接「main.bat」を起動してやると正しく動作しますが、 (この場合のlog.txtは 20120903tが書き込まれて出力されています。) タスクスケジューラを使ってmain.batを実行すると、log.txtの新居陽は下記のようになってしまいます。 ECHO は <ON> です。 いろいろ試してみていますがうまくいきません。 どのようにすればlog.txtの内容が日付になるのでしょうか。