Solved

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

Posted on 2012-04-10
11
579 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
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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 51

Expert Comment

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

~bp
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 51

Expert Comment

by:Bill Prew
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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 51

Expert Comment

by:Bill Prew
Comment Utility
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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Ever notice how you can't use a new drive in Windows without having Windows assigning a Disk Signature?  Ever have a signature collision problem (especially with Virtual Machines?)  This article is intended to help you understand what's going on and…
Recently Microsoft released a brand new function called CONCAT. It's supposed to replace its predecessor CONCATENATE. But how does it work? And what's new? In this article, we take a closer look at all of this - we even included an exercise file for…
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…

771 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

11 Experts available now in Live!

Get 1:1 Help Now