Solved

Need a dos script to ignore the "There is no disk in drive.." error

Posted on 2012-04-10
11
581 Views
Last Modified: 2012-05-21
Hello all,

I am trying to run a batch that will scan all drives to look for a folder, this issue I'm having is as soon as it his an empty DVD drive I would get the "There is no disk in drive" pop up. I need to be able to ignore this error and continue to scan, I am running this on Windows 7 64 bit.

FOR %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  IF EXIST %%d:\thisisatestfolderdonotremove

NOTE: I have seen one other posting about this issue but the fix did not work. Also I would need this in a DOS command, not vb script.
0
Comment
Question by:devinngo
  • 4
  • 3
  • 2
  • +2
11 Comments
 
LVL 35

Expert Comment

by:Joseph Daly
ID: 37828282
You could probably leverage WMIC to get only the attached physical logical drives. The command below should get you the disks in the server.

wmic logicaldisk where drivetype="3" get caption
0
 

Author Comment

by:devinngo
ID: 37828391
xxdcmast,

Thank you, but that will not work because I still need to search through all the USB drives and devices for that folder, the purpose is to save a backup onto the drive that folder exists.
0
 
LVL 7

Expert Comment

by:Todar
ID: 37828398
Did you try:

FOR %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
dir /s %%d:\thisisatestfolderdonotremove
0
 

Author Comment

by:devinngo
ID: 37828827
so it would be something like:

FOR %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
      IF EXIST dir /s %%d:\thisisatestfolderdonotremove  

??
0
 
LVL 52

Expert Comment

by:Bill Prew
ID: 37829646
I can help with this and will work up an approach shortly...

~bp
0
Being driven mad by email signature updates?

Having to make a change to your users’ email signatures, yet again? Feel like your head is going to explode? Rely on an Exclaimer email signature management solution to make the process simple!

 
LVL 52

Expert Comment

by:Bill Prew
ID: 37829718
Not sure exactly what logic you want to occur when you do or don't find the file, but see if this gives you some ideas.
@echo off
for /F "skip=2 tokens=2 delims=," %%A in ('wmic logicaldisk where drivetype^=3 get deviceid^,volumename /format:csv') do (
  echo Checking:[%%A]
  if exist "%%A\thisisatestfolderdonotremove" (
    echo TRUE
  ) else (
    echo FALSE
  )
)

Open in new window

~bp
0
 
LVL 11

Expert Comment

by:paultomasi
ID: 37835199
devinngo

Your approach is almost right however, you need to add '\*' at the end like this:
@echo off
for %%d in (c d e f g h i j k l m n o p q r s t u v w z y z) do (
  if exist %%d:\thisisatestfolderdonotremove\* (
    rem
    rem Your code goes here...
    rem
  )
)

Open in new window

0
 
LVL 11

Expert Comment

by:paultomasi
ID: 37835242
devinngo

Another thing you can do is build a 'drives' string variable which you can use later. So, if you were to have say, drives C: D: E: and H: then your variable drives will be set to 'C D E H', like this:
@echo off
setlocal enabledelayedexpansion

set "drives="

for %%d in (c d e f g h i j k l m n o p q r s t u v w z y z) do (
  if exist %%d:\* set "drives=!drives! %%d"
)

Open in new window

Now you can search for your folder like this:
for %%d in (%drives%) do (
  if exist "%%d:\thisisatestfolderdonotremove\*" (
    rem
    rem Your code goes here...
    rem
  )
)

Open in new window

Notice the double-quotes around '%%d:\thisisatestfolderdonotremove\*'. This is required if there are spaces in the foldername.
0
 
LVL 11

Expert Comment

by:paultomasi
ID: 37835334
devinngo

If you decide to use WMIC then the following will work correctly.
@echo off

for /f %%a in ('wmic logicaldisk where drivetype^=3 get deviceid ^| find ":"') do (
  if exist "%%a\thisisatestfolderdonotremove\*" (
    echo %%a
  )
)

Open in new window

NOTE: When using WMIC, both 'deviceid' and 'caption' work equally well on my XP setup.
0
 
LVL 11

Accepted Solution

by:
paultomasi earned 500 total points
ID: 37835365
devinngo

When testing code, be sure to remember it must distinguish between a folder named 'thisisatestfolderdonotremove' and a file named 'thisisatestfolderdonotremove'. All my solutions above are able to distinguish the difference.
0
 
LVL 52

Expert Comment

by:Bill Prew
ID: 37993475
Could you close this differently please?  It's not clear what solution worked for you, so rather than accept the comment as the solution, please select the post(s) that actually contain the code that worked for you.

I can't see how 37835242 could have resolved the problem, since at it's core it does basically the same thing your original example posted does, and should therefore throw the same error.

If on the other hand it was 37835334 that solved your problem, then it feels like post 37829718 should have gotten some recognition as well, since it is basically the same core approach with small adjustments.

~bp
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

NTFS file system has been developed by Microsoft that is widely used by Windows NT operating system and its advanced versions. It is the mostly used over FAT file system as it provides superior features like reliability, security, storage, efficienc…
A Bare Metal Image backup allows for the restore of an entire system to a similar or dissimilar hardware. They are highly useful for migrations and disaster recovery. Bare Metal Image backups support Full and Incremental backups. Differential backup…
This video Micro Tutorial explains how to clone a hard drive using a commercial software product for Windows systems called Casper from Future Systems Solutions (FSS). Cloning makes an exact, complete copy of one hard disk drive (HDD) onto another d…
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now