• ベストアンサー

VBScriptでカレントディレクトリの表示

VBscriptで自分が今いるカレントディレクトリを変数に代入するにはどうすればいいでしょうか。 VBScriptはG:\にあり(USB上)、そこから起動しています。 Dim driveNameと定義して、driveNameにG:\を代入したいんです。 あとで、msgboxでそれを表示するつもりです。

noname#200754
noname#200754

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

WScript.ScriptFullNameでそのスクリプトファイルの存在場所を取得し 取得した文字列を \で分割してみてはいかがでしょう dim driveName, ss, ff ss = WScript.ScriptFullName ff = split( ss, "\" ) driveName = ff(0) MsgBox driveName といった具合です ・・・

関連するQ&A

  • vbscriptの変数宣言

    教えてください。 プログラム初心者です。 vbscriptで変数をDimで宣言しているものと。Dim無しの変数宣言していないく、 いきなり代入して使っているものもあります。宣言して使うものと使わないものの違いは何でしょうか? よろしくお願いします。

  • コマンドプロンプトの出力をVBScript内の変数に代入する

    VBScriptからコマンドプロンプトのver | findstr 5.1を実行し、その出力結果をVBScript内の変数に代入したいのですが、どうすればいいでしょうか? Dim WShell Dim result Set WShell = WScript.CreateObject("WScript.Shell") WShell.Run "cmd /c (ver | findstr XP > " & result & ")" MsgBox result とやってもresultには何も入っていませんでした。

  • VBScriptでボリュームラベルの表示

    VBScriptで現在自分がいるボリュームラベルの名前をMsgBoxで表示したいのですが、どうすればいいでしょうか?

  • クラスパスとカレントディレクトリ

    コマンドプロントでJavaファイルをコンパイルしたいのですがうまくいきません。 このJavaファイルは外部のJarファイルを必要で、このJavaファイルが置いてある場所にその必要なJarファイルをコピーしてあるのですが、エラーが出てしまいます。(-classpathコマンドでjarファイルを指定すると正常に動作します) どこかのサイトで CLASSPATH環境変数には「.」があるので、カレントディレクトリの下にあるJarファイルは読み込む と書いてあったと思うのですが、自分は何を間違ってとらえているのでしょうか? お返事お待ちしております。

    • ベストアンサー
    • Java
  • VBScriptの変数宣言

    ASPでvbscriptを使って処理をしているページの修正を行っていたのですが、その中で不思議な状態が発生しています。 <% Option Explicit On Error Resume Next %> ===== 省略 ===== <% filename = Trim(bobj.Form(bin,"filename")) Dim filename ===== 省略 ===== 普通、上記のような記述ではfilenameの代入のところでエラーが発生すると思うのですが、代入処理の直後にerr.numberを判定しても、エラーが発生していないんです。 includeしてあるファイルの内部も検索しましたが、filenameの変数宣言は見つかりませんでした。 VBScriptって、どこで変数宣言を行っても有効になるのでしょうか? 正常に動いているので、今のところ問題は無いのですが、何か気持ち悪くて。。。 似たような現象が起こった事のある方や、これが正しい動きだというご指摘をお願いいたします。

  • カレントディレクトリ・・・って?

    こんにちは。ネットで検索したのですが知識が無いためさっぱりわからないので質問させていただきます。 今度、中古ノートPCを入手するに当たり、メーカーのHPからアップデートできるものをダウンロードしました。 「BIOSのアップデート」を解凍したところ、セットアップFDを作り、 しかも、その作業をMS-DOS日本語モードでしなければならず悪戦苦闘しています。 自分のPCが日本語モードになっている事はわかりましたので、FDをフォーマットするまでは出来ました。 次の手順が 「アップデートFD作成ツールを実行します。解凍したファイルがあるカレントディレクトリで実行してください」 っと書いてあり、 解凍されて出来たアプリケーション「~.exe」を実行するようなのですが、その部分がさっぱりわかりません。 ネットでカレントディレクトリなどを検索しまくったのですが、解決できませんでした。 それを入力すると 「ドライブAにフォーマットされたFDをセットして下さい。よろしいですか(Y/N) ?」っと表示されるようなのですが・・・。 現在はMS-DOSプロンプトを開くと「C:¥WINDOWS>」っとなっており、 そのままファイル名を入力し実行すると「コマンドまたはファイル名が違います」っと出ます。 アップデートファイルはデスクトップのフォルダにあります。 わたしのPCはVAIO PCV-R60でOSはWindows98です。 どなたかアドバイスよろしくお願いいたします。

  • 【VBScript】ファイルのPathを表示させる

    初歩ですが、VBScriptの処理で質問させてください。 以下の処理を実現したいと思っています。 ・WScript.Arguments.vbsにファイルをドラッグした際に、 ファイルのPathを表示する ・2つ以上のファイルがドラックされた場合は、 アラームを上げて処理を中断する [WScript.Arguments.vbs] Dim Inti Dim oParam(1) for Inti=0 to 1 Set oParam(Inti) = WScript.Arguments MsgBox oParam(Inti) next このコードですが、他に何を追加すればよろしいでしょうか。 恐れ入りますが、回答いただければ幸いです。

  • VBScriptでクリップボードにコピーする方法

    VBScriptでクリップボードにMsgboxの出力データをコピーする方法がわかりません。 ちなみにMsgboxの出力データは変数で、処理の流れとしてMsgboxのすぐ後に クリップボード上に変数をコピーをするようにしたいと考えています。 ネットで検索した結果、下記内容がありましたが、1年前くらいにまったく同じ目的のVBScriptを作成したことがあり、その時は特に制限なく目的のVBScriptが作成できたので、どうも納得できません。 その時のを残しておけばよかったと今になって後悔。。。しかもどうやったか忘れた。。。。 ===ネット検索結果=== WSH と VBScript のいずれにもクリップボードを操作する機能はありません。どちらを使用しても、クリップボードにデータをコピーしたりクリップボードからデータを貼り付けたりすることはできません。一方、Internet Explorer ではクリップボードを操作することができます。 他にもネット上で、とりあえずInputBoxに出力してコピーするような流れの内容がありましたが、今回の目的(見栄えとして)として、どうしてもMsgboxのすぐ後で処理させたいのでわかる方おりましたら宜しくお願いします。

  • HTML + VBScript で Sleep できない

    お世話になります。ご教授ください。 類似の質問が既にあるのかもしれませんが、質問させていただきます。。。 HTML上に記述するVBScriptでは、WScriptは使用できないという記事を見かけます。 実際、HTML+VBScriptで使用すると、 変数は宣言されていません:'WScript' とエラーが出ました。 WSH は WScript のインスタンスを読み込むことができないうんぬん、と書かれていました。 書きたいことは、 WScript.Sleep 1000 です。 もしくは、これに変わる何かがしたいです。 外部ファイル化(.vbs)を試してみましたが、ダメでした。 ==== サンプル(Sample.vbs) ==== Option Explicit MsgBox "start" Dim Idx = 0 Do While Idx <> 3 WScript.Sleep 1000 MsgBox Idx Idx = Idx + 1 Loop WScript.Sleep 1000 MsgBox "end" ================ <html> <head> <meta http-equiv="Content-Script-Type" content="text/vbscript"> <script language="VBScript" type="text/vbscript" src="sample.vbs"></script> </head> … という感じです。 上記はあくまでサンプルですが、最終的には「ループの中で」待ち状態、になるようにしたいです。 Do While ある条件 1秒待ち ある条件に、なるかならないか Loop (setTimeout を使用する例が書かれていましたが、それではループ制御は走り続け、CPUが痛い目に合いました。。。) もしかして、WScript は使用できるのに、記述ミスかもしれませんし。。。 できない場合は、それに変わる案などいただけるとありがたいです。 よろしくお願いします。

  • ログイン後のカレントディレクトリが'/'になる

    CentOS-6.2 を使用しているのですが、インストール時、/boot 以外は、パーティション設定をLVMにお任せインストールしたため、'/'パーティション の中に、 /home 以外の全てのパーティションが入ってしまい、'/' パーティション: 50 GB、'/home'パーティション:250GBという、いびつな状態になってしまいました。 このPCに、Apache Hadoop 0.20.2 を擬似分散モードでインストールして動かしてみたところ、あっと言う間に'/'領域がパンクしてしまいました。そこで umount /home resize2fs /dev/mapper/vg_V00/lv_home 10G lvreduce -L 10G /dev/mapper/vg_V00/lv_home lvextend +L 240G /dev/mapper/vg_V00/lv_root resize2fs /dev/mapper/vg_V00/lv_home と行って、'/'パーティションを拡張し、 mkfs.ext4 /dev/mapper/vg_V00/lv_home を実行してfsをつくり直し、 mount /dev/mapper/vg_V00/lv_home /home を行った後、 useradd hoge01 passwd hoge01 を実行してユーザアカウントを作ったのですが、PCを再起動してhoge01でログインしようとすると、カレントディレクトリが /home/hoge01 ではなく、 / となってしまいます。なお、 cd とやると、/home/hoge01 に移動します。 一方、Cntr-Alt-F3で仮想コンソールからログインしようとすると、 No directory /home/hoge01 ! Logging in with home = "/". と表示されてしまいます。 これはどうしたら解決できますでしょうか? どうぞよろしくお願いします。

専門家に質問してみよう