Fishermen and cave

The town of Hpa An in Myanmar, surrounded by a karst landscape, offers opportunities to visit the caves in that region. Many caves are used for Buddhist shrines, and some are used for navigation. Here, nearly 20 kilometres from Hpa An, fishermen are shown outside a cave entrance that runs through to the other side of the karst hills.

Reconnect mapped network drives using Windows Command Prompt script

When booting into Windows, the OS sometimes does not reconnect mapped network drives even though the mapping is configured with the “Reconnect at sign-in” option. This is due with various timing constraints of resources during boot.

Although there are free Third Party software available that can automatically reconnect your mapped network drives, I would rather be able to do this using built-in tools than add more unnecessary software to my system. I’ve therefore written a Command Prompt script using the “net use” command. Not the prettiest of code but it does the job. Tested in Windows 10 Pro 64-bit.

The script was saved as a .CMD batch file which is executed by twice using Task Scheduler at user log on; one in non-admin and the other in admin mode. This allows mapped drives to be visible to those applications running in non-admin and also to those applications running in admin modes.

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET me=%~n0
SET parent=%~dp0

TITLE Mapping network drives
@ECHO Please wait whilst we reconnect your network drives.

SET neterror=0

SET counter=1
SET loopvalue=11
SET /A trueloop=%loopvalue%-1
:Start
ECHO _____________________________________
ECHO:
IF "%counter%" EQU "%loopvalue%" (
ECHO Connection to D:\ drive timed-out
SET neterror=1
GOTO End
)
ECHO Attempt %counter% of %trueloop% to D:\ drive
TIMEOUT /t 5 /NOBREAK >NUL
IF EXIST D:\NUL (
ECHO Attempt %counter% successful.
GOTO End
)
NET USE D: \\192.168.49.69\Data /PERSISTENT:YES
IF "%ERRORLEVEL%" NEQ "0" IF "%ERRORLEVEL%" NEQ "85" (
SET /A counter=%counter%+1
GOTO Start
)
:End

IF "%neterror%" EQU "0" GOTO Endofscript

:userconfirm
ECHO _____________________________________
ECHO:
SET /P userinput="Errors were found. Do you wish to try again [Y/n] "
IF /I "%userinput%" EQU "y" GOTO Start
IF /I "%userinput%" EQU "" GOTO Start
IF /I "%userinput%" EQU "n" GOTO Endofscript
GOTO userconfirm

:Endofscript
ECHO _____________________________________
ECHO:
@ECHO Please wait, script is closing.
TIMEOUT /t 5 /NOBREAK >NUL
ENDLOCAL
@ECHO OFF
@EXIT /B 0