【问题标题】:How can I get a drive list from a batch file?如何从批处理文件中获取驱动器列表?
【发布时间】:2010-10-24 20:24:21
【问题描述】:

我正在尝试获取所有映射驱动器的列表以进行系统升级,并希望通过批处理文件获取此信息。我怎样才能做到这一点?

对于奖励积分: 如何在新服务器上编写这些驱动器的映射脚本?

【问题讨论】:

    标签: batch-file windows-server-2003 drive-mapping


    【解决方案1】:

    当前映射列表将由

    返回
    net use
    

    传输将像这样进行(为了好玩1,让我们在批处理脚本而不是 VBScript 中进行):

    @echo off
    
    setlocal EnableDelayedExpansion
    
    set letter=.
    set uncpath=.
    set colon=.
    
    for /f "delims=" %%l in ('net use') do @(
      for /f "tokens=2" %%t in ("%%l") do @set letter=%%t
      for /f "tokens=3" %%t in ("%%l") do @set uncpath=%%t
    
      set colon=!letter:~1,1!
    
      if "!colon!" EQU ":" (
        echo if exist !letter! net use !letter! /delete
        echo net use !letter! !uncpath! /persistent:yes
      )
    )
    
    endlocal
    

    输出是这样的:

    if exist M: net use M: /delete
    net use M: \\someserver\someshare /persistent:yes
    if exist N: net use N: /delete
    net use N: \\otherserver\othershare /persistent:yes
    

    只需将其存储在批处理文件中即可。


    1 实际上,“有趣”在这里并不合适。 ;-)

    【讨论】:

    • 哇!你是未来派来拯救/摧毁我们所有人的编码机器人吗? :)
    • 没有。这一假设至少在一个方面是错误的。 ;-) 事实上,我以前从未在批处理脚本中做过这样的事情,但是嘿 - 它似乎有效。 :)
    • 恐怕我在这里和 Joel 在一起......你要毁掉我们所有人......伙计!,那个 dos 环境真的有一些腿。
    • BTW: Tamalak 你的头像是不是一不小心反转了?还是你反对黑客?
    • @Keng:我会说它并不比 Perl 丑多少(尽管能力较差)。但这只是一种意见。 ;-) 我不会说我的头像是颠倒的。滑翔机在任何方向上都是稳定的,所以我认为方向在这里并不重要。
    【解决方案2】:

    列出映射的驱动器

    Net Use
    

    映射新驱动器

    Net Use G: \\Server\Path
    

    【讨论】:

      【解决方案3】:

      你可以使用 vbscript 做到这一点

      Set objFSO = CreateObject("Scripting.FileSystemObject")
      Set colDrives = objFSO.Drives
      
      For Each objDrive in colDrives
          Wscript.Echo "Drive letter: " & objDrive.DriveLetter
      Next
      

      您可以使用映射网络驱动器

      Set objNetwork = CreateObject("WScript.Network") 
      objNetwork.MapNetworkDrive "G:", "\\Server\Path"
      

      【讨论】:

      • 您的第一个脚本将列出 PC 上的所有驱动器,包括任何本地驱动器,而不仅仅是映射的网络驱动器。
      • 您可以检查 objDrive.DriveType 以确保它是网络驱动器 (DriveType=3)。
      猜你喜欢
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2019-09-26
      • 1970-01-01
      • 2021-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多