用vbs實(shí)現(xiàn)的確定共享文件夾的本地路徑?
如何確定共享文件夾的本地路徑?
問:
您好,腳本專家!如果有 UNC 路徑(例如 \\server1\test),可以使用腳本確定共享文件夾(例如 C:\Scripts\Test 文件夾)的本地路徑嗎?
-- JVK
答:
您好,JVK。是的,您說得沒錯
噢,對了;我們幾乎忘了。您能使用腳本確定共享文件夾的本地路徑嗎?您當(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
正如您所見,我們首先使用了一個典型 UNC 路徑:\\atl-fs-01\public。順便提一下,我們將該路徑存儲在名為 strPath 的變量中。有了這個路徑名稱之后,我們必須做兩件事。首先,我們必須將計(jì)算機(jī)名稱 (atl-fs-01) 與共享名稱 (public) 分開。之后,我們必須連接到計(jì)算機(jī) atl-fs-01,確定 public 文件夾的本地路徑。那將會有多難?一點(diǎn)也不難。
特別是對于我們這些剛剛設(shè)法戰(zhàn)勝了“無敵”對手的腳本編寫者。我們還沒說吧?最后得分是 4 比 2,盡管我們打得不那么好??隙ㄊ墙叹毞浅:?nbsp;…
讓我們言歸正傳吧。首先,我們必須去掉 UNC 路徑之前的 \\。雖然還有其他若干方法,我們只需使用 Replace 函數(shù)將出現(xiàn)的每個 \\ 替換為空內(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
不用說,這就是我們要找的兩條信息:計(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ù)。(哪個遠(yuǎn)程計(jì)算機(jī)?就是 Atl-fs-01,該計(jì)算機(jī)的名稱存儲在名為 strComputer 的變量中。)然后,我們使用 ExecQuery 方法檢索該計(jì)算機(jī)上的所有共享文件夾的集合:
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Share Where Name = '" & strShare & "'")
好主意:我們沒有獲得所有共享文件夾,對嗎?相反,我們只獲得了 Name 屬性等于 strShare 變量的值的那些共享文件夾。(在您打一會盹的功夫,strShare 等于 public,也就是我們所要的共享文件夾名稱。)接下來要做的就是建立一個 For Each 循環(huán)來遍歷集合(因?yàn)樵谝慌_計(jì)算機(jī)上的共享文件夾名稱必須唯一,所以該集合中將只有一項(xiàng)),然后回顯 Path 屬性的值。您可能已經(jīng)猜到了,Path 屬性告訴我們 atl-fs-01 上的文件夾的本地路徑:
D:\Scripts\Public
這就是您要獲得一個 UNC 路徑并確定本地文件夾路徑需要做的一切。
上一篇:右鍵發(fā)送(sendto),創(chuàng)建快捷方式到自定義的位置 的vbs
欄 目:vb
下一篇:本地連接禁用/啟用批處理腳本
本文標(biāo)題:用vbs實(shí)現(xiàn)的確定共享文件夾的本地路徑?
本文地址:http://mengdiqiu.com.cn/a1/vb/7933.html
您可能感興趣的文章
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10VBS中的正則表達(dá)式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語法速查及實(shí)例說明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁面中添加VBscript代碼


閱讀排行
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語法速查及實(shí)例說明
隨機(jī)閱讀
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法