※ ChatGPTを利用し、要約された質問です(原文:VBScriptでCurrentDirectoryを変更する方法)
VBScriptでCurrentDirectoryを変更する方法
このQ&Aのポイント
VBScriptを使用して、CurrentDirectoryを変更する方法について説明します。
VBScriptのスクリプトを実行する際に、相対パスでファイルを指定する方法について考えます。
VBScriptでのCurrentDirectoryの変更方法には、コマンドプロンプトを使用する方法などがあります。
VBScriptでCurrentDirectoryを変更する方法
もともとのやりたいことは実行したスクリプトの相対パスでファイルを指定することです。
(スクリプトは複数の実行環境で実行するので絶対パスでは書きたくありません)
ただし、ダブルクリックでも起動するし、別ファイルのD&Dでも起動するので
必然的に起動時のCurrentDirectoryが変化してしまいます。
これを固定化したいのです。
いまは固定化というか起動後に目的のディレクトリに移動することで実現させようと思っています。
とりあえず以下のコードを書きました。
Dim CurrentDirectory
CurrentDirectory = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) -21)
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "cmd CD " + CurrentDirectory, 0, FALSE
Set oShell = Nothing
(2行目の「-21」はスクリプト名の長さを引いているだけです。あまり気にしないでください)
が、これだと見た目はうまくいくのですがcmdプロセスが残ってしまい起動するたびに増えていきます。
それにそもそもスマートではない気がします
質問は以下です。
・上記のコードを修正してcmdプロセスを残らないようにする方法
・上記の方法以外でCurrentDirectoryを変更する方法
どちらでもかまいません。(両方だとなおうれしいです)
よろしくお願いします。
お礼
おお、すごいです。 へんな苦労をしていたことが馬鹿みたいです。 まだまだ知識や経験が足りないようですね…。 質問自体以外にも意図やスキルを汲み取って アドバイスをしていただき参考になりました。 大変助かりました。ありがとうございました。