【发布时间】:2010-10-24 20:24:21
【问题描述】:
我正在尝试获取所有映射驱动器的列表以进行系统升级,并希望通过批处理文件获取此信息。我怎样才能做到这一点?
对于奖励积分: 如何在新服务器上编写这些驱动器的映射脚本?
【问题讨论】:
标签: batch-file windows-server-2003 drive-mapping
我正在尝试获取所有映射驱动器的列表以进行系统升级,并希望通过批处理文件获取此信息。我怎样才能做到这一点?
对于奖励积分: 如何在新服务器上编写这些驱动器的映射脚本?
【问题讨论】:
标签: batch-file windows-server-2003 drive-mapping
当前映射列表将由
返回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 实际上,“有趣”在这里并不合适。 ;-)
【讨论】:
列出映射的驱动器
Net Use
映射新驱动器
Net Use G: \\Server\Path
【讨论】:
你可以使用 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"
【讨论】: