How To Use FOR Loop To map Network Shares From Different Networks Resources

Mapping network shares from a network is a pretty easy thing to do. The standard command for this in windows is:

net use x: \\{host}\{share} {password} /u:{unsername} /p:{no|yes}

where:

x = drive letter (a-z)

p = persistent (yes means re-map after system restart and no means the opposite)

Assuming you want to automate such action mapping more shares from different networks, you will want to use the FOR loop in a batch script. These steps will show my aproach:

 

1.) The first thing to do is create and place all your share information (host, share, password, username and drive letters in a file and name the file anything you want. To suite my purpose, I’ll jsut name the file “dat2” without any file extention. The content should look like this:

01,10.11.11.21,username,password,t,share

02,172.16.10.21,username,password,u,share

03,195.34.13.21,username,password,v,share

04,192.168.0.21,username,password,w,share

 

2.) Create a batch script to disconnect all existing network drives. Let’s name this file “delmap.bat”

 

REM ======================= Begin Of Script =============================

@echo off

REM Check and disconnect all existing network drives

cls

if exist t: net use /del t: /y

if exist u: net use /del u: /y

if exist v: net use /del v: /y

if exist w: net use /del w: /y

 

goto :EOF

REM ======================= End Of Script =============================

 

3.) Now, we can create the main script “NetShare.bat” with the following contents:

 

REM ======================= Begin Of Script =============================

 

@echo off

REM To avoid error messages, check and disconnect all existing network drives

REM by calling another batch file named delmap.bat.

cls

call “%~dp0\delmap.bat”

REM To avoid unexpected errors, the system needs to wait 3 seconds after

REM disconnecting all existing drives before re-mapping the network resources.

REM All pre-defined parameters in the file (dat2) will be fetched line by line using

REM the (for) loop. There are 6 columns in the file (dat2) separated by commas (delims).

REM The first is the line numbers (not needed). That is the reason why the tokens is

REM defined from 2-6. The pre-defined variables (hostN, userN, paswd, drive and share) are

REM passed one by one from the ‘sub routine’ (:var) to process the mapping of the drives.

cls

ping -n 3 127.0.0.1>nul

for /F “tokens=2-6 delims=,” %%g IN (%~dp0dat2) do call :var %%g %%h %%i %%j %%k

goto end

:var

set hostN=%1

set userN=%2

set paswd=%3

set drive=%4

set share=%5

net use %drive%: \\%hostN%\%share% %paswd% /U:%userN% /P:no

goto :EOF

:end

exit

REM ======================= End Of Script =============================

 

 

Download:

Both files NetShare.bat and delmap.bat are included in the dowload below:

NetShare

You need to create  your share information (dat2) by following the first step above.


Posted in Windows and tagged , , , , , by with comments disabled.