如何讓VBS中的絕對路徑可以被換成動態的
本帖最後由 jmsdhn 於 2017-11-18 13:29 編輯以下是用VBS執行BAT的指令Set ws = CreateObject("Wscript.Shell")
ws.run "X:\TEST\AAA.bat",vbhide
可以讓BAT以隱藏的方式執行
超好用
但是VBS似乎只接受檔案的絕對路徑
在VBS中有何方法
可以有如以下BAT的指令
(為了避免混淆 先說一下 以下這個批次檔不是AAA.bat)cd/d %~dp0for /f "delims= tokens=1" %%i in ('dir/s/b \AAA.bat') do %%i
不曉得這一列指令為何不能顯示在複製代碼框內
只能寫在外面了
也就是希望這個被操作的AAA.EXE或是AAA.BAT
在VBS中也可以是動態的
不用擔心這個AAA.EXE或是AAA.BAT
可能有一天會移動位置而抓不到
感謝!
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
fd = fso.GetParentFolderName(WScript.ScriptFullName) & "\"
Set ws = CreateObject("Wscript.Shell")
ws.run fd & "AAA.bat",vbhide
可以執行
基本上這些指令是排除絕對路徑出現在VBS的內容中
不過跟BAT還是差很多
BAT可以讓兩個批次檔之間或批次檔跟目標之間
在同一個磁碟中處在不同路徑深處
譬如
X:\TEST\AAA.bat
的內容包含
cd/d %~dp0
for /f %%i in ('dir/s/b \目標.ttt') do (任何事)
就可以對
X:\SSS\TTT\UUU\目標.ttt
做任何事
但樓上大大這樣的寫法
似乎VBS必須跟該目標放在同一路徑下吧
比較希望可以全動態
感謝回應
雖然跟絕對路徑放於VBS內的結果一樣(VBS仍必須與目標檔放一起)
但也讓我再多學到一些VBS知識
jmsdhn 發表於 2017-11-19 21:13
可以執行
基本上這些指令是排除絕對路徑出現在VBS的內容中
你的這個舉例來看,
用絕對路徑比相對路徑好。
另外,硬要做的話,你可以試試看"..\"切換吧。
頁:
[1]