請選擇 進入手機版 | 繼續訪問電腦版

微剋多資訊

 找回密碼
 註冊

Sign in with google

Google帳號登入

搜索
回覆 3則 瀏覽 25534篇
Line

[問題已解決] 【VBS】獲取VBS本身所在資料夾後的處置方法

該用戶從未簽到

升級   50.5%

發表於 2022-10-14 18:08 | 顯示全部樓層 |閱讀模式
本帖最後由 jmsdhn 於 2022-10-16 16:28 編輯

打擾了!

假定如下內容放在R:\AAA\TEST.VBS
scriptdir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
MsgBox "所在位置:" & scriptdir

將顯示【所在位置:R:\AAA】

想請教如何在TEST.VBS內
繼續使用【R:\AAA】這個可變的字串值
譬如
ws.run "R:\AAA\測試.bat",0


感謝指教!

樓主熱門主題

該用戶從未簽到

升級   0%

發表於 2022-10-16 14:50 | 顯示全部樓層
  1. scriptdir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
  2. Set shell = CreateObject("WScript.Shell")
  3. shell.CurrentDirectory = scriptdir
  4. shell.Run "測試.bat", 0, True
複製代碼

使用道具

該用戶從未簽到

升級   50.5%

 樓主| 發表於 2022-10-16 16:27 | 顯示全部樓層
本帖最後由 jmsdhn 於 2022-10-17 11:08 編輯

感謝不吝指教!

看來第三行是關鍵
感覺等號兩邊是同等級(同樣是物件)
才能造成相等

剛去搜尋shell.CurrentDirectory或CurrentDirectory看能不能知道這是怎麼用的
不過好像沒有官方說明
感覺CurrentDirectory很像是CMD指令後的參數
且又歸於物件等級
然後SHELL得到CurrentDirectory回傳的值後
又切到RUN參數來執行CurrentDirectory指向的執行程式或批次吧

在測試.bat中做了簡單的dir/b>%TEMP%\AAA.log
果然成功產生AAA.log和VBS所在的檔案列表了

感謝教學!

使用道具

該用戶從未簽到

升級   0%

發表於 2022-10-16 17:02 | 顯示全部樓層
jmsdhn 發表於 2022-10-16 16:27
剛去搜尋shell.CurrentDirectory或CurrentDirectory看能不能知道這是怎麼用的
不過好像沒有官方說明

How Can I Change the Working Folder of a Script?
1 0

使用道具

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

小黑屋|Archiver|微剋多資訊(MicroDuo)

GMT+8, 2024-3-29 18:03

Discuz! X

© 2009-2023 Microduo

快速回覆 返回頂部 返回列表