微剋多資訊

 找回密碼
 註冊

Sign in with google

Google帳號登入

搜索

該用戶從未簽到

升級   51.8%

跳轉到指定樓層
主題
發表於 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%

2F
發表於 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
複製代碼

使用道具

該用戶從未簽到

升級   51.8%

3F
 樓主| 發表於 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%

4F
發表於 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-12-31 01:33

Discuz! X

© 2009-2023 Microduo

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