.png)
Estou no console do Windows tentando descobrir se um arquivo/pasta existe ou não.
EXIST
pode ser usado em lote, mas não está disponível na linha de comando:
C:\Users\WIN7PR~1>EXIST C:\Users
'EXIST' is not recognized as an internal or external command, operable program or batch file.
Responder1
A solução quando o recurso é um arquivo é bastante simples, conforme indicado por outros:
C:\> IF EXIST C:\CONFIG.SYS ECHO C:\CONFIG.SYS exists.
Infelizmente, o procedimento acima não funciona para diretórios. A função EXIST retorna o mesmo resultado para pastas presentes e ausentes. Felizmente, existe uma solução alternativa obscura:
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.
Acontece que para suportar construções como anexar >NUL
instruções de comando, existe uma espécie de arquivo virtual chamado "NUL" em cada diretório. Verificar a sua existência é equivalente a verificar a existência do diretório.
Esse comportamento está documentado em um artigo da base de conhecimento da Microsoft (https://support.microsoft.com/en-us/kb/65994) e confirmei seu comportamento no FreeDOS 1.1 e em um shell de comando do Windows 7.
EXTRA: O artigo da base de conhecimento indica que esta técnica também pode ser usada para verificar se uma unidade está presente. No entanto, no caso de verificação da existência da unidade, existem advertências:
Ocorre um
Abort, Retry, Fail?
erro se a unidade não estiver formatada.O uso dessa técnica para verificar a existência da unidade depende da implementação do driver de dispositivo e nem sempre funciona.
Responder2
Você pode usar um simples
DIR C:\User
Responder3
Você pode usar type
o comando, ele retornará o conteúdo de um arquivo de texto sem abri-lo, e para um diretório retornará: Acesso negado.
Se o arquivo ou diretório não estiver disponível, você receberá a mensagem: O sistema não pode encontrar o arquivo especificado.
Então, por exemplo:
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.
Responder4
Você pode usar este código:
<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>