您好,登錄后才能下訂單哦!
這篇文章主要介紹怎么用vbs實現確定共享文件夾的本地路徑,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
問:
如果有 UNC 路徑(例如 \\server1\test),可以使用腳本確定共享文件夾(例如 C:\Scripts\Test 文件夾)的本地路徑嗎?
答:
是的,您說得沒錯
噢,對了;我們幾乎忘了。您能使用腳本確定共享文件夾的本地路徑嗎?您當然可以(盡管我們不知道為什么在棒球賽季期間還有人有閑心做這些)。但如果這確實是您想要做的,那么這就告訴您該如何去做:
代碼如下:
strPath = "\\atl-fs-01\public"
strPath = Replace(strPath, "\\", "")
arrPath = Split(strPath, "\")
strComputer = arrPath(0)
strShare = arrPath(1)
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Share Where Name = '" & strShare & "'")
For Each objItem in colItems
Wscript.Echo objItem.Path
Next
正如您所見,我們首先使用了一個典型 UNC 路徑:\\atl-fs-01\public。順便提一下,我們將該路徑存儲在名為 strPath 的變量中。有了這個路徑名稱之后,我們必須做兩件事。首先,我們必須將計算機名稱 (atl-fs-01) 與共享名稱 (public) 分開。之后,我們必須連接到計算機 atl-fs-01,確定 public 文件夾的本地路徑。那將會有多難?一點也不難。
特別是對于我們這些剛剛設法戰勝了“無敵”對手的腳本編寫者。我們還沒說吧?最后得分是 4 比 2,盡管我們打得不那么好。肯定是教練非常好 …
讓我們言歸正傳吧。首先,我們必須去掉 UNC 路徑之前的 \\。雖然還有其他若干方法,我們只需使用 Replace 函數將出現的每個 \\ 替換為空內容:
strPath = Replace(strPath, "\\", "")
執行這行代碼后,變量 strPath 將等于 atl-fs-01\public。這意味著,我們可以使用 Split 函數將此值分成數組:
arrPath = Split(strPath, "\")
根據 \ 進行分離后,我們最終得到由兩項數據組成的數組:
? atl-fs-01
? public
不用說,這就是我們要找的兩條信息:計算機名稱和共享文件夾名稱。明確這一點后,我們將數組中的第一項(項 0)賦給名為 strComputer 的變量,將第二項(項 1)賦給名為 strShare 的變量:
strComputer = arrPath(0)
strShare = arrPath(1)
那么,現在我們是不是到了比較困難的部分?不管您相信與否,這正是比較困難的部分;在這以后,我們只需使用標準的 WMI 腳本。我們首先連接到遠程計算機上的 WMI 服務。(哪個遠程計算機?就是 Atl-fs-01,該計算機的名稱存儲在名為 strComputer 的變量中。)然后,我們使用 ExecQuery 方法檢索該計算機上的所有共享文件夾的集合:
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Share Where Name = '" & strShare & "'")
好主意:我們沒有獲得所有共享文件夾,對嗎?相反,我們只獲得了 Name 屬性等于 strShare 變量的值的那些共享文件夾。(在您打一會盹的功夫,strShare 等于 public,也就是我們所要的共享文件夾名稱。)接下來要做的就是建立一個 For Each 循環來遍歷集合(因為在一臺計算機上的共享文件夾名稱必須唯一,所以該集合中將只有一項),然后回顯 Path 屬性的值。您可能已經猜到了,Path 屬性告訴我們 atl-fs-01 上的文件夾的本地路徑:
D:\Scripts\Public
以上是“怎么用vbs實現確定共享文件夾的本地路徑”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。