溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用vbs確定共享文件夾的本地路徑

發(fā)布時(shí)間:2021-09-30 09:56:58 來(lái)源:億速云 閱讀:103 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹怎么用vbs實(shí)現(xiàn)確定共享文件夾的本地路徑,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

問(wèn):
如果有 UNC 路徑(例如 \\server1\test),可以使用腳本確定共享文件夾(例如 C:\Scripts\Test 文件夾)的本地路徑嗎?
答:
是的,您說(shuō)得沒(méi)錯(cuò)
噢,對(duì)了;我們幾乎忘了。您能使用腳本確定共享文件夾的本地路徑嗎?您當(dāng)然可以(盡管我們不知道為什么在棒球賽季期間還有人有閑心做這些)。但如果這確實(shí)是您想要做的,那么這就告訴您該如何去做:

代碼如下:


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 


正如您所見(jiàn),我們首先使用了一個(gè)典型 UNC 路徑:\\atl-fs-01\public。順便提一下,我們將該路徑存儲(chǔ)在名為 strPath 的變量中。有了這個(gè)路徑名稱之后,我們必須做兩件事。首先,我們必須將計(jì)算機(jī)名稱 (atl-fs-01) 與共享名稱 (public) 分開(kāi)。之后,我們必須連接到計(jì)算機(jī) atl-fs-01,確定 public 文件夾的本地路徑。那將會(huì)有多難?一點(diǎn)也不難。
特別是對(duì)于我們這些剛剛設(shè)法戰(zhàn)勝了“無(wú)敵”對(duì)手的腳本編寫(xiě)者。我們還沒(méi)說(shuō)吧?最后得分是 4 比 2,盡管我們打得不那么好??隙ㄊ墙叹毞浅:?nbsp;…
讓我們言歸正傳吧。首先,我們必須去掉 UNC 路徑之前的 \\。雖然還有其他若干方法,我們只需使用 Replace 函數(shù)將出現(xiàn)的每個(gè) \\ 替換為空內(nèi)容:
strPath = Replace(strPath, "\\", "")
執(zhí)行這行代碼后,變量 strPath 將等于 atl-fs-01\public。這意味著,我們可以使用 Split 函數(shù)將此值分成數(shù)組:
arrPath = Split(strPath, "\")
根據(jù) \ 進(jìn)行分離后,我們最終得到由兩項(xiàng)數(shù)據(jù)組成的數(shù)組:
? atl-fs-01
? public
不用說(shuō),這就是我們要找的兩條信息:計(jì)算機(jī)名稱和共享文件夾名稱。明確這一點(diǎn)后,我們將數(shù)組中的第一項(xiàng)(項(xiàng) 0)賦給名為 strComputer 的變量,將第二項(xiàng)(項(xiàng) 1)賦給名為 strShare 的變量:
strComputer = arrPath(0)
strShare = arrPath(1)
那么,現(xiàn)在我們是不是到了比較困難的部分?不管您相信與否,這正是比較困難的部分;在這以后,我們只需使用標(biāo)準(zhǔn)的 WMI 腳本。我們首先連接到遠(yuǎn)程計(jì)算機(jī)上的 WMI 服務(wù)。(哪個(gè)遠(yuǎn)程計(jì)算機(jī)?就是 Atl-fs-01,該計(jì)算機(jī)的名稱存儲(chǔ)在名為 strComputer 的變量中。)然后,我們使用 ExecQuery 方法檢索該計(jì)算機(jī)上的所有共享文件夾的集合:
Set colItems = objWMIService.ExecQuery _
    ("Select * From Win32_Share Where Name = '" & strShare & "'")
好主意:我們沒(méi)有獲得所有共享文件夾,對(duì)嗎?相反,我們只獲得了 Name 屬性等于 strShare 變量的值的那些共享文件夾。(在您打一會(huì)盹的功夫,strShare 等于 public,也就是我們所要的共享文件夾名稱。)接下來(lái)要做的就是建立一個(gè) For Each 循環(huán)來(lái)遍歷集合(因?yàn)樵谝慌_(tái)計(jì)算機(jī)上的共享文件夾名稱必須唯一,所以該集合中將只有一項(xiàng)),然后回顯 Path 屬性的值。您可能已經(jīng)猜到了,Path 屬性告訴我們 atl-fs-01 上的文件夾的本地路徑:
D:\Scripts\Public

以上是“怎么用vbs實(shí)現(xiàn)確定共享文件夾的本地路徑”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vbs
AI