私はこの行動を理解していません。私の現在の作業ディレクトリが私が期待するものではない理由を誰かが説明してくれるかもしれません。
私のデスクトップには、STKGui というフォルダーがあります。
C:\Documents and Settings\Lauren\Desktop\STKGui
そのディレクトリには、次のファイルがあります: gui.html、style.css、save.html、load.html STKGui 内には、次のディレクトリもあります: Images、Scripts、および SaveData。スクリプトには、gui.vbs を含むさまざまな .vbs ファイルが含まれています。
gui.html から始めます。load.html に移動するボタンをクリックします。load.html は Scripts\gui.vbs のスクリプトを使用します。関数の 1 つがデータベースをロードするため、データベースの場所を指定します: C:\Documents and Settings\Lauren\Desktop\STKGui\SaveData\SaveData.accdb もちろん、代わりに相対ファイル パスを使用します。固定パス。データベースをロードする最初の試みは失敗しました。C:\Documents and Settings\Lauren\Desktop\SaveData\SaveData.accdb からロードしようとしていました。トラブルシューティングを行うために、現在の作業ディレクトリを出力しました。残念なことに、それは C:\Documents and Settings\Lauren\Desktop でした
デスクトップが現在の作業ディレクトリである理由がわかりません。ファイルが実行されている場所であってはなりませんか? C:\Documents and Settings\Lauren\Desktop\STKGui (load.html の場所) または C:\Documents and Settings\Lauren\Desktop\STKGui\Scripts (含む gui.vbs の場所) のいずれかになると考えました。データベースをロードしようとしている関数/現在の作業ディレクトリのデバッグ メッセージを出力しようとしている関数)。
誰かが現在の作業ディレクトリが何であるかを説明できますか、または実行中のファイルの場所である本当に必要なものを取得する方法を教えてください。(それがメインの STKGui フォルダーであるかスクリプト フォルダーであるかは気にしません。アプリケーションのディレクトリ構造内にある限り、作業できます!)
編集 (2010 年 7 月 14 日午後 4 時 2 分 EDT):
現在の作業ディレクトリを印刷したり、実行中のスクリプトからの相対パスだと思っていたものに基づいてファイルを取得したりするさまざまな試みにより、実行されたスクリプトのパスではなく、デスクトップのパスが表示されました。このリンクに出くわしました: http://leereid.wordpress.com/2008/03/19/vbscript-current-directory-or-folder/ しかし、実行時エラーが発生するため、どのソリューションも機能していません。 Wscript オブジェクト。したがって、前述のリンクのソリューションのいずれかが異なる結果をもたらすかどうかはわかりませんが、誰かがそれらの少なくとも1つを機能させるのを手伝ってくれれば、それが正しい方向への一歩である可能性があることがわかります.
以下に再現されたソリューションの1つ:
Set oShell = CreateObject("WScript.Shell")
Set ofso = CreateObject("Scripting.FileSystemObject")
oShell.CurrentDirectory = ofso.GetParentFolderName(Wscript.ScriptFullName)
次のエラーが発生します。
必要なオブジェクト: 'Wscript' 行: 659 文字: 1
659行目は次のとおりです。
oShell.CurrentDirectory = ofso.GetParentFolderName(Wscript.ScriptFullName)