2

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

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

4

3 回答 3

3

当前映射列表将由

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实际上,“有趣”在这里并不合适。;-)

于 2009-05-08T17:11:55.917 回答
2

列出映射的驱动器

Net Use

映射新驱动器

Net Use G: \\Server\Path
于 2009-05-08T17:10:54.857 回答
1

您可以使用 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"
于 2009-05-08T17:04:34.140 回答