脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - VBS - 用vbs实现的确定共享文件夹的本地路径?

用vbs实现的确定共享文件夹的本地路径?

2020-07-07 12:26VBS教程网 VBS

如果有 UNC 路径(例如 \\server1\test),可以使用脚本确定共享文件夹(例如 C:\Scripts\Test 文件夹)的本地路径吗?

如何确定共享文件夹的本地路径?
问:
您好,脚本专家!如果有 UNC 路径(例如 \\server1\test),可以使用脚本确定共享文件夹(例如 C:\Scripts\Test 文件夹)的本地路径吗?
-- JVK
答:
您好,JVK。是的,您说得没错
噢,对了;我们几乎忘了。您能使用脚本确定共享文件夹的本地路径吗?您当然可以(尽管我们不知道为什么在棒球赛季期间还有人有闲心做这些)。但如果这确实是您想要做的,那么这就告诉您该如何去做:

复制代码 代码如下:


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
这就是您要获得一个 UNC 路径并确定本地文件夹路径需要做的一切。

延伸 · 阅读

精彩推荐
  • VBSWINDOWS脚本实践:为SAP补丁制作的VBS脚本代码

    WINDOWS脚本实践:为SAP补丁制作的VBS脚本代码

    本文主要分享WINDOWS脚本实践:为SAP补丁制作的VBS脚本代码,有需要的童鞋可以参考下...

    脚本之家3232020-07-06
  • VBSVBS教程:正则表达式简介 -正则表达式语法

    VBS教程:正则表达式简介 -正则表达式语法

    正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的...

    VBS教程网3302019-11-25
  • VBS雷客图ASP站长安全助手vbs测试版代码

    雷客图ASP站长安全助手vbs测试版代码

    雷客图ASP站长安全助手是一个基于ASP的帮助站长维护网站安全的程序。这个版本(vbs测试版)主要用于服务器本地运行以查找ASP木马。此版本为测试版,希...

    脚本之家2312020-07-03
  • VBSAdsutil.vbs 在脚本攻击中的妙用[我非我原创]

    Adsutil.vbs 在脚本攻击中的妙用[我非我原创]

    adsutil.vbs是什么?相信用过IIS的网管员不会不知道。这是IIS自带的提供于命令行下管理IIS的一个脚本。位于%SystemDrive%\Inetpub\AdminScripts目录下。...

    VBS教程网2312020-07-07
  • VBSVBS数组深入浅出

    VBS数组深入浅出

    VBS数组在应用中没有像其他语句那么广泛,VBS数组存在不少功能上的局限性(如二维数组的定义、赋值),在使用上也没有java等语言那么便捷...

    VBS教程网2962020-08-18
  • VBS灵活实用VBS入门教程应用篇

    灵活实用VBS入门教程应用篇

    上一篇文章我们了解了VBS编程的一些基础知识,要更深入地学习还要学习选择结构和循环结构。 ...

    VBS教程网5742020-07-01
  • VBSVBS编程教程 (第1篇)

    VBS编程教程 (第1篇)

    VBScript的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版). 正如其字面所透露的信息, VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言....

    VBS教程网4812020-07-15
  • VBSVBS文本文件操作实现代码

    VBS文本文件操作实现代码

    这篇文章主要介绍了VBS文本文件操作实现代码,需要的朋友可以参考下...

    VBS代码网8912020-08-12