cmd 명령줄(배치 스크립트 아님)을 사용하여 파일/폴더가 존재하는지 확인합니다.

cmd 명령줄(배치 스크립트 아님)을 사용하여 파일/폴더가 존재하는지 확인합니다.

파일/폴더가 존재하는지 여부를 확인하려고 Windows 콘솔에 있습니다.

EXIST일괄적으로 사용할 수 있지만 명령줄에서는 사용할 수 없습니다.

C:\Users\WIN7PR~1>EXIST C:\Users
'EXIST' is not recognized as an internal or external command, operable program or batch file.

답변1

리소스가 파일일 때의 솔루션은 다른 사람들이 지적한 것처럼 매우 간단합니다.

C:\> IF EXIST C:\CONFIG.SYS ECHO C:\CONFIG.SYS exists.

불행하게도 위의 내용은 디렉토리에서는 작동하지 않습니다. EXIST 함수는 누락된 폴더와 현재 폴더 모두에 대해 동일한 결과를 반환합니다. 다행히도 다음과 같은 모호한 해결 방법이 있습니다.

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.

>NUL명령문에 추가하는 것과 같은 구성을 지원하기 위해 모든 디렉토리에 "NUL"이라는 일종의 가상 파일이 있다는 것이 밝혀졌습니다 . 존재 여부를 확인하는 것은 디렉터리 존재 여부를 확인하는 것과 동일합니다.

이 동작은 Microsoft 기술 자료 문서(https://support.microsoft.com/en-us/kb/65994) 그리고 FreeDOS 1.1 및 Windows 7 명령 셸에서 해당 동작을 확인했습니다.

추가: KB 문서에는 이 기술을 사용하여 드라이브가 있는지 확인할 수도 있다고 나와 있습니다. 그러나 드라이브 존재 여부를 확인하는 경우에는 다음과 같은 주의 사항이 있습니다.

  • Abort, Retry, Fail?드라이브가 포맷되지 않으면 오류가 발생합니다 .

  • 드라이브 존재 여부를 확인하기 위해 이 기술을 사용하는 것은 장치 드라이버 구현에 따라 다르며 항상 작동하지 않을 수도 있습니다.

답변2

당신은 간단하게 사용할 수 있습니다

DIR C:\User

답변3

명령을 사용하면 type텍스트 파일을 열지 않고도 텍스트 파일의 내용을 반환하고 디렉터리의 경우 다음을 반환합니다. 액세스가 거부되었습니다.

파일이나 디렉터리를 사용할 수 없으면 다음 메시지가 표시됩니다. 시스템이 지정된 파일을 찾을 수 없습니다.

예를 들면 다음과 같습니다.

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.

답변4

다음 코드를 사용할 수 있습니다.

<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>

관련 정보