Simple problem requiring complex solution in DOS

Thread Solved

Join Date: Apr 2009
Posts: 16
Reputation: bugista is an unknown quantity at this point 
Solved Threads: 0
bugista bugista is offline Offline
Newbie Poster

Simple problem requiring complex solution in DOS

 
0
  #1
Apr 22nd, 2009
Hi all,
I have written a code in DOS. The program is to find a file in a location and print "File exists" if it is present.
Assume a file named test.txt exists in location D:\
In my sys I have enabled the option in xp-explorer
"Tools->Folderoptions->View->Hide extension for known file types". So if I search for the file with extension test.txt the code is working fine. Where as if i disenable the option the code cannot find the file.

Since I need to run the code in different machines, i need to search for a particular file, regardless of whether the option is enabled or not.
even if i am using "test" for search the code is not locating the file

here is the code:

cd D:\

if exist test.txt (

echo FILE EXISTS

) else (

if exist test (

echo FILE EXISTS

) else (

echo FILE doesn't exists

)

)


Thanks in advance
Never Say Never
Reply With Quote Quick reply to this message  
Join Date: Dec 2007
Posts: 99
Reputation: airbourne is an unknown quantity at this point 
Solved Threads: 5
airbourne's Avatar
airbourne airbourne is offline Offline
Junior Poster in Training

Re: Simple problem requiring complex solution in DOS

 
0
  #2
Apr 22nd, 2009
Even if you hide the file extensions, the batch file should work. The code that you have is working for me and I cannot duplicate the problem you are having.

Are you saying that if you uncheck HIDE FILE EXTENSIONS FOR KNOWN FILE TYPES, the batch file tells you that the file does not exist?
Reply With Quote Quick reply to this message  
Join Date: Feb 2009
Posts: 452
Reputation: FlamingClaw will become famous soon enough FlamingClaw will become famous soon enough 
Solved Threads: 108
FlamingClaw's Avatar
FlamingClaw FlamingClaw is offline Offline
Posting Pro in Training

Re: Simple problem requiring complex solution in DOS

 
0
  #3
Apr 23rd, 2009
It is working me too.
use the @echo off to hide the your program's details

@ echo off

cd D:\

if exist test.txt (

echo FILE EXISTS
rem add a pause command here,to see the result
Pause
) else (

if exist test (

echo FILE EXISTS
Pause
) else (

echo FILE doesn't exists
Pause
)

)
Be a good part of the community.Don't be ungrateful.
If you ask something on the forum and you got the right answer then mark as solved!
If my opinion helped to you a lot then sometimes give reputation point to me.
I'm just a pascal programmer from Hungary.
Farewell...
Reply With Quote Quick reply to this message  
Join Date: Dec 2007
Posts: 99
Reputation: airbourne is an unknown quantity at this point 
Solved Threads: 5
airbourne's Avatar
airbourne airbourne is offline Offline
Junior Poster in Training

Re: Simple problem requiring complex solution in DOS

 
0
  #4
Apr 23rd, 2009
You can add only 1 pause at the end of the file to get the results too. An IF THEN ELSE will only display one result so stopping at each point is more code than you need.

My question to the OP: is the file you are looking for always in the directory that contains the batch file?
Reply With Quote Quick reply to this message  
Join Date: Feb 2009
Posts: 452
Reputation: FlamingClaw will become famous soon enough FlamingClaw will become famous soon enough 
Solved Threads: 108
FlamingClaw's Avatar
FlamingClaw FlamingClaw is offline Offline
Posting Pro in Training

Re: Simple problem requiring complex solution in DOS

 
0
  #5
Apr 23rd, 2009
-=For airbourne=-
ok,you're right
reference for 'if'
Remarks
If the condition specified in an if clause is true, the command that follows the condition is carried out. If the condition is false, the command in the if clause is ignored and the command executes any command that is specified in the else clause.


When a program stops, it returns an exit code. To use exit codes as conditions, use errorlevel.


If you use defined, the following three variables are added to the environment: %errorlevel%, %cmdcmdline%, and %cmdextversion%.


%errorlevel% expands into a string representation of the current value of the ERRORLEVEL environment variable. This assumes that there is not an existing environment variable with the name ERRORLEVEL—if there is, you will get that ERRORLEVEL value instead.


%cmdcmdline% expands into the original command line that was passed to Cmd.exe prior to any processing by Cmd.exe. This assumes that there is not an existing environment variable with the name CMDCMDLINE—if there is, you will get the CMDCMDLINE value instead.


%cmdextversion% expands into the string representation of the current value of cmdextversion. This assumes that there is not an existing environment variable with the name CMDEXTVERSION—if there is, you will get the CMDEXTVERSION value instead.


You must use the else clause on the same line as the command after the if.



Examples
To display the message "Cannot find data file" if the file Product.dat cannot be found, type:

if not exist product.dat echo Cannot find data file
To format a disk in drive A and display an error message if an error occurs during the formatting process, type the following lines in a batch file:

:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.
To delete the file Product.dat from the current directory or display a message if Product.dat is not found, type the following lines in a batch file:

IF EXIST Product.dat (
del Product.dat
) ELSE (
echo The Product.dat file is missing.
)
Note
These lines can be combined into a single line as follows:


IF EXIST Product.dat (del Product.dat) ELSE (echo The Product.dat file is missing.)
To echo the value of the ERRORLEVEL environment variable after running a batch file, type the following lines in the batch file:

goto answer%errorlevel%
:answer1
echo Program had return code 1
:answer0
echo Program had return code 0
goto end
:end
echo Done!
To go to the "okay" label if the value of the ERRORLEVEL environment variable is less than or equal to 1, type:

if %errorlevel% LEQ 1 goto okay
Be a good part of the community.Don't be ungrateful.
If you ask something on the forum and you got the right answer then mark as solved!
If my opinion helped to you a lot then sometimes give reputation point to me.
I'm just a pascal programmer from Hungary.
Farewell...
Reply With Quote Quick reply to this message  
Join Date: Dec 2007
Posts: 99
Reputation: airbourne is an unknown quantity at this point 
Solved Threads: 5
airbourne's Avatar
airbourne airbourne is offline Offline
Junior Poster in Training

Re: Simple problem requiring complex solution in DOS

 
0
  #6
Apr 23rd, 2009
A bit more complicated than I would ever need to get with a batch program, but point well taken.
Reply With Quote Quick reply to this message  
Join Date: Apr 2009
Posts: 16
Reputation: bugista is an unknown quantity at this point 
Solved Threads: 0
bugista bugista is offline Offline
Newbie Poster

Re: Simple problem requiring complex solution in DOS

 
0
  #7
Apr 24th, 2009
Thanks to all who helped me....

I got the problem.....it is not due to file extension....
In some systems, even if u chdir...it is moving to the default dir....

hence the file is searched in the default dir location.....

ex: if i give D:....but the sys has the default dir as C:
it is searching for the test.txt file in the C: dir..
Last edited by bugista; Apr 24th, 2009 at 3:06 am.
Never Say Never
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the Windows Software Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC