Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2076
  • Last Modified:

Batch file only runs at command prompt. Run through Explorer causes obscure error.

I haven't tried other batch files on our customers server yet, but a simple batch file that runs INSTALL.EXE (a VB app) with a few parameters, where all files are located in the same folder, causes a type of "file not found" error with the exact verbiage of :

"Cannot find the file 'C:\temp\xxxxx.bat' (or one of its components). Make sure the path and filename are correct and that all required libraries are available."  

How can it not FIND the file when I'm double-clicking on it to generate this message LOL.  The account is Administrator and the files do not have any special security on them.  If I install the program on my own workstation using various operating systems including Windows 2000 they work fine.  This is our only customer who's run into this so far.  In all my years of experience (18+) I haven't run across this before.  It seems as if there's something affecting the OS as to not let it run BAT files from within the OS.

If I shell out to a command prompt and CD to the directory to run the BAT file, it works fine.  This would normally be a perfectly fine work-around, but I feel that the root cause is affecting one of my other VB apps that also shells to DOS to run instructions.
0
z0ner
Asked:
z0ner
1 Solution
 
_nn_Commented:
A few things you could check :
- in My Computer / Properties / Advanced / Environment Variables : is the ComSpec one correct in the system group ?
- type 'assoc' in a cmd window, does it have '.bat=batfile' and '.cmd=cmdfile' lines ?
- does the registry look normal in HKCR\batfile\shell\open\command ?
0
 
Netman66Commented:
Check the file association for the .bat extension.

To test if it is the association change the extension to .cmd and try it.

Advise.
0
 
mburdickCommented:
It sounds like the "or one of its components" is the likely culprit. When you open a CMD window, you pass whole set of environment variables to all command that you run. One, some, or all of these may not be getting passed correctly to the batch script you are trying to run.

Here are a couple of things to do:

1) Make sure that everything in the script contains full paths. Don't rely on the environment variables to allow the script to find files that are on the path.

2) Expand the variables that you need in the script before executing any commands.

3) Change directories within the script to ensure that you are running the commands within the right "contexts".
0
Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

 
darth_wannabeCommented:
I agree with the above.....wherever you reference other files in the script, define the whole path. for instance, rather than  INSTALL.EXE have it be C:\DIRNAME\INSTALL.EXE

Also, you are double-clicking the actual file, and not a shortcut or something?
0
 
z0nerAuthor Commented:
Finally figured out what happened.  Unknown to the customer, a previous tech had renamed CMD.EXE to "DosBox.EXE".  This caused the install.bat file to choke, as well as our VB app that was hard-coded for CMD.EXE.  I guess you can't assume anything nowadays :-)
0
 
SpazMODicCommented:
PAQed, with points refunded (500)

SpazMODic
EE Moderator
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now