MW211 EXIT

devlog
VBScript/VBS自身の位置
2023年09月07日
WSHのCurrentDirectoryでもいけそうなのだが…
┌──────────────────────────────────────┐
│Dim objWSH                                                                  │
│Set objWSH = WScript.CreateObject("WScript.Shell")                          │
│MsgBox objWSH.CurrentDirectory                                              │
└──────────────────────────────────────┘
他から呼ばれた場合(*1)に、呼ばれた場所が採用されてしまう。

そのファイル自身の位置を取得するには以下がよい。
┌──────────────────────────────────────┐
│Dim objFSO                                                                  │
│Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")             │
│MsgBox objFSO.getParentFolderName(WScript.ScriptFullName)                   │
└──────────────────────────────────────┘

*1:コマンドプロンプトから実行した場合など
┌──────────────────────────────────────┐
│cscript //nologo VBSCriptファイル.vbs 引数                                  │
└──────────────────────────────────────┘
分類:WSH・VBS
PowerAutomate/VBScriptファイルの実行
2023年09月03日
(「アクション」の)「スクリプト」における
「VBScriptの実行」よりも「DOSコマンドの実行」の方がよさそうだ。
(「VBScriptの実行」はファイル実行というよりも直接コードを書く場合向け)

内容的には以下のようなコマンドを記述すればよい。
┌──────────────────────────────────────┐
│cscript 絶対パス\VBScript.vbs 引数1 引数2…                                 │
└──────────────────────────────────────┘
「cscript」コマンドでVBScriptファイルを実行する感じだ。
なお、事前にコマンドプロンプトで直接実行してみて動作確認しておいた方がよい

なお、「VBScript.vbs」(仮名)のある位置(パス)を
VBScript上で取得する場合には注意が必要

┌──────────────────────────────────────┐
│Dim gWSH: Set gWSH = WScript.CreateObject("WScript.Shell")                  │
│gWSH.CurrentDirectory                                                       │
└──────────────────────────────────────┘
上記だと、直接VBScriptファイルを実行した場合には問題ないが、
「cscript」コマンドで実行した場合だと
それを実行したフォルダの位置となってしまう

こっちだと、VBScriptファイルのある位置(つまり絶対パス)が取得できる
┌──────────────────────────────────────┐
│Dim gFSO: Set gFSO = WScript.CreateObject("Scripting.FileSystemObject")     │
│gFSO.getParentFolderName(WScript.ScriptFullName)                            │
└──────────────────────────────────────┘
分類:PAD(RPA)
前へ 1 次へ