Changing Drive Letter Issue on External Backup Disks


We are using 5 external usb hard disks and handy backup software in order to do differential backup of our data.
We have labeled the disks for every day from Monday to Friday.
Our issue is that sometimes (rare but happens) the drive letter of the disk is different than the previous time (or what we have assigned to it).
This has as a result that the backup software cannot find the appropriate labeled disk to start writing on.

i.e Today is Monday so the backup should run on disk with driveletter X:. However for some reason the driveletter is now Z:. So the backup process wont start.

Any advice?
Maybe if there was a way to guarantee permanent change of drive letter?
Or any other solution should be useful.
Who is Participating?
kode99Connect With a Mentor Commented:
If you can send your backups to a path/directory you can mount the USB drives to a directory.  This is 100% always going to associate the drive to the same directory.  No batch files or anything special required.

This is done through disk management,  you just select the mount to folder option instead of the drive letter.

So you could have a c:\Backup\ directory then create a empty folder for each day which you then assign to the respective USB drives.

If you must have a drive letter for the backup software to work you can use a SUBST command to assign these directories to the drive letters you want.

Non free but inexpensive option is a program that manages the letters for you,

what backup program do you run?
I think you should focus on resolving the change of letter issue, did you have a look at the logs?
AJKBOCAuthor Commented:
as stated earlier, am using Handy Backup
Improved Protection from Phishing Attacks

WatchGuard DNSWatch reduces malware infections by detecting and blocking malicious DNS requests, improving your ability to protect employees from phishing attacks. Learn more about our newest service included in Total Security Suite today!


If you need to change the drive letters this can be done manually by
right clicking my computer, select manage, go to disk manager and right click the disk that you want the drive letter to be changed on and select "change drive letter and paths".

Hope this helps
Go to Control Panel ==> Administrative Tools ==> Computer Management

Select "Disk Management" in the left panel and then right-click on your Z:drive (in the right panel) and choose "Change drive letter and paths" where you can change it to X: drive.

It should remember this setting from there onwards and always mount that drive to X:
AJKBOCAuthor Commented:
Dear sirs,
i will monitor this for one week and let you know.

also, you can add a secheduled task (Batch file) in windows task scheduler which willl run before the backup runs and make sure your USB got correct drive letter,if not it assigns correct one..backups will run smoothly.

AJKBOCAuthor Commented:
can you provide such a batch file?
i guess so..can i know the volume lable of the USB drive ?
so basicly you have 5-6 disks and you use ths eem one by one for each day. is that correct ?
If so then can you give me the drive leteer of each disk that you want like

monday= X:
tue = Y

something like that
AJKBOCAuthor Commented:
Monday = P:
Tuesday = Q:
Wednesday = R:
Thursday = S:
Friday = T:
thanks for last question.can you run below on command prompt and give me the output.

echo %date%
AJKBOCAuthor Commented:
This is the output I get.

C:\>echo %date%
subhashchyConnect With a Mentor Commented:
alright.. I tested this code on my system and seems to be working.
here is the condition.
. It assume you have 5 drives labled as MON - FRY (First 3 alphabets from date).

It basicaly scan for the drive labled for that day and assigned the drive letter you provided.

@echo off
set day=%date:~0,3%
if /i %day% == mon set ADL=P
if /i %day% == tue set ADL=q
if /i %day% == WED set ADL=r
if /i %day% == thu set ADL=s 
if /i %day% == FRY set ADL=t
echo today is %day% and so Drive letter will be %ADL%

echo list volume >%temp%\dskprt.txt
diskpart /s %temp%\dskprt.txt | find /i "%DAY%" >Volume.txt
for /f "tokens=3" %%a in (volume.txt) do (
echo USB drive current volume letter = %%a
set DL=%%a
echo. Checking drive letter ..
if /i %DL% == %ADL% (
echo Drive letter already assigned ..good to go..
echo Press enter to exit

if /i not %DL% == %ADL% (
echo. drive letter mismatch..attempting to assign new one
echo removing existing drive letter and assiging required one
echo select volume %DL% >%temp%\dskprt1.txt
echo remove letter=%DL% >>%temp%\dskprt1.txt
echo assign letter=%ADL%>>%temp%\dskprt1.txt
diskpart /s %temp%\dskprt1.txt

Open in new window

note then when i run echo %date% on my system the output is
Tue 03/01/2011. I m taking first 3 alpha from this output so it depends on date format.
you should also get the same not sure why..any idea ?
AJKBOCAuthor Commented:
dear sir,
this is because of the regional settings -> formats.
if i set the format to English(United Kingdom) then the result is as i stated earlier.
Can you chnge your settings to united states or if not then i guess you willl have to schedule the batch file for each day.... like on monday it should be scheuded to run as "Mybatch.bat MON".

Will that work for you? You will have to scheudle the batch file in task scheudler for each day
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.