I am on the windows console trying to find out whether a file/folder exists or not.
EXIST could be used in batch, but it is not available on the command-line:
C:\Users\WIN7PR~1>EXIST C:\Users
'EXIST' is not recognized as an internal or external command, operable program or batch file. 0 5 Answers
The solution when the resource is a file it is pretty straight-forward as indicated by others:
C:\> IF EXIST C:\CONFIG.SYS ECHO C:\CONFIG.SYS exists.Unfortunately, the above does not work for directories. The EXIST function returns the same result for both missing and present folders. Fortunately, there is an obscure workaround:
C:\> IF NOT EXIST C:\FOLDER\NUL ECHO C:\FOLDER missing.
C:\FOLDER missing.
C:\> MD C:\FOLDER
C:\> IF EXIST C:\FOLDER\NUL ECHO C:\FOLDER exists.
C:\FOLDER exists.It turns out that to support constructs like appending >NUL on command statements, there is a sort of virtual file named "NUL" in every directory. Checking for its existence is equivalent to a check for the directory's existence.
This behavior is documented in a Microsoft knowledge base article ( ) and I have confirmed its behavior on FreeDOS 1.1 and in a Windows 7 command shell.
EXTRA: The KB article indicates this technique can also be used to see if a drive is present. In the case of checking for drive existence, however, caveats exist:
An
Abort, Retry, Fail?error occurs if the drive is not formatted.Using this technique to check for drive existence depends on device driver implementation and may not always work.
You can use a simple
DIR C:\User 0 You can use type command, it will return the contents of a text file without opening it, and for a directory it will return: Access is denied.
If the file or directory is not available you get the message: The system cannot find the file specified.
So for example:
C:\>type c:\temp
Access is denied.
C:\>type c:\example.txt
Some example content in a text file
C:\>type c:\doesnotexist
The system cannot find the file specified. 1 Just put if on the front :)
if exist C:\Users echo It exists! 1 You can use this code:
<pre>
:init
SETLOCAL enabledelayedexpansion
GOTO make_dir
:make_dir
ECHO .
ECHO Checking if exists directory %out_path% ...
CD %out_path%
IF !ERRORLEVEL! GTR 0 ( ECHO Directory doesn't exist, creating... MD %out_path% GOTO make_dir
) ELSE ( ECHO Directory already exists.
)
:GOTO back_it_up
:back_it_up
::Procedure that makes an backup
GOTO done
:done
ECHO Finished
SETLOCAL
EXIT /B
</pre> 1