用vbs實(shí)現(xiàn)的確定共享文件夾的本地路徑?
如何確定共享文件夾的本地路徑?
問(wèn):
您好,腳本專家!如果有 UNC 路徑(例如 \\server1\test),可以使用腳本確定共享文件夾(例如 C:\Scripts\Test 文件夾)的本地路徑嗎?
-- JVK
答:
您好,JVK。是的,您說(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
正如您所見,我們首先使用了一個(gè)典型 UNC 路徑:\\atl-fs-01\public。順便提一下,我們將該路徑存儲(chǔ)在名為 strPath 的變量中。有了這個(gè)路徑名稱之后,我們必須做兩件事。首先,我們必須將計(jì)算機(jī)名稱 (atl-fs-01) 與共享名稱 (public) 分開。之后,我們必須連接到計(jì)算機(jī) atl-fs-01,確定 public 文件夾的本地路徑。那將會(huì)有多難?一點(diǎn)也不難。
特別是對(duì)于我們這些剛剛設(shè)法戰(zhàn)勝了“無(wú)敵”對(duì)手的腳本編寫者。我們還沒(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
這就是您要獲得一個(gè) 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語(yǔ)法速查及實(shí)例說(shuō)明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語(yǔ)句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁(yè)面中添加VBscript代碼


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個(gè)高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語(yǔ)法速查及實(shí)例說(shuō)明
隨機(jī)閱讀
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 04-02jquery與jsp,用jquery
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法