相対パス起動
Windpwsのショートカットは、
絶対パスで記録されるため、フォルダ構成や上位フォルダの名前が変わったり、
持ち運びするメモリスティックのようにドライブ名が固定で無い場合は使用できません。
本スクリプトは、スクリプトのあるフォルダを基点にした「
相対パス」で実行します。(またはファイルを開く)
リムバブルディスクなどでも、割り当てられる
ドライブレターに関係なく、アプリケーションを実行する(またはファイルを開く)ことができます。
使用例
下記の手順
1.スクリプトファイルを
ダウンロード&解凍
2.相対パス起動.vbs を基点フォルダにコピーして、適当な名前に変更
3.スクリプトファイルを
メモ帳で開いて、開きたい(実行したい)ファイルの相対パスを記述
スクリプトの中の、target="xxxxxx"の
xxxxxx 部分に、開きたいファイルの
相対パスを記述して保存。
「
.」 同一(自分自身と同じ)フォルダ
「
..」 一つ上位のフォルダ
下図の位置関係で、
相対パス起動.vbs から
いとこ.txt を開く場合
..\sister\nibling\いとこ.txt と記述します。
右端は、それぞれのファイルの、相対パス.vbs から見た相対パス。
パス中に半角スペースが入っている場合の注意
const target = "abc def.txt"
とすると、「abc」をファイルパス、「def.txt」はファイル(またはアプリ)に渡すパラメータとして解釈し、
エラーとなる。
半角スペースを含めてパスとするには、全体を「" "」で囲む必要がある。
ただし、「"」自体が文字列を表す特殊文字なので、「"」を単なる1文字としなければならない。
それが「""」とダブルをクォートを2個並べる方法。
1個目のダブルクォートで、それに続く特殊文字の機能を打ち消している。
JavaScriptやC言語のエスケープ記号としての「\」と同様
ファイル名に半角スペースが含まれる場合
const target = """abc def.txt"""
パラメータに半角スペースが含まれる場合
const target = "notepad.exe ""program files\abc def.txt"""
ファイルパスおよびパラメータに半角スペースが含まれる場合
const target = """C:\Program Files\Windows NT\Accessories\wordpad.exe"" ""abc def.txt"""
VBScriptコード
VBScriptコードは、きわめてシンプル。
51:スクリプトファイルのあるパスを取得
52:カレントディレクトリをスクリプトファイルのパスに設定
55:実行(ウィンドウズシェルは相対パスを指定可)
リンクリスト