Come posso ottenere un elenco di unità da un file batch?
-
20-08-2019 - |
Domanda
Sto cercando di ottenere un elenco di tutte le mie unità mappate per un aggiornamento del sistema e vorrei ottenere queste informazioni tramite un file batch. Come posso fare questo?
Per punti bonus: Come posso scriptare la mappatura di queste unità sul nuovo server?
Soluzione
L'elenco delle mappature correnti verrà restituito da
net use
Il trasferimento funzionerebbe in questo modo (per il divertente 1 , facciamolo nello script batch anziché in 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
l'output va in questo modo:
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
Basta archiviarlo in un file batch e sei a posto.
1 In realtà, " fun " non è la parola giusta qui. ; -)
Altri suggerimenti
Per elencare le unità mappate
Net Use
Per mappare una nuova unità
Net Use G: \\Server\Path
Puoi farlo usando vbscript
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Next
E puoi mappare le unità di rete con
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive "G:", "\\Server\Path"