2017-09-05 4 views
0

... 예 :파일이 비어 있거나 없으면 어떤 CMD 명령이 오류를 생성합니까?

thatcommand myfile.txt && ECHO Is non-empty || ECHO Is empty or absent 

(양식 프로세서 :.이 문제를 완전히 설명 않음)

+0

파일이 존재하는 경우 "0"에 비해 순으로 낮은이며 비 비어 0보다 큰 바이트 후 크기가 빈 문자열을 반환합니다 그렇지 않으면 비어 있거나 결석입니다. 코드 크기를 확인하고 코드를 시도 할 때 자신의 코드가 실패 할 경우 해당 설명을 사용하여 질문을 편집하는 명령을 검색하고 시도하십시오. – Compo

답변

1

코드에서 같은 방식으로 하나의 명령으로 제한하려면, 당신은 함께 시도 할 수

(>nul 2>nul findstr /m "^" "myfile.txt") && echo ok || echo empty or absent 

이 코드는 findstr을 사용하여 파일 내용을 정규 표현식과 비교하여 파일 이름을 확인하고 파일 이름 만 반환합니다 (첫 번째 일치 항목에서 검색을 남겨 둡니다).

  • 파일이 있고 비어 있지 않으면 정규 표현식이 일치하는 것을 찾습니다. 명령 파일이 비어있는 경우, 가능한 원정 파일이 존재하지 않는 경우 세트 errorlevel-1

  • 는 명령이 직접 실패 명령이되지 않습니다 errorlevel

  • 웁니다 (파일을 찾을 수 없음) 및 errorlevel1 이미 COMPO에 의해 지적

+0

감사합니다. 이 두 답변을 두 개의 답변으로 게시하는 것이 친절 할 경우, 저는 그 중 하나를 받아 들일 것입니다. – ChrisJJ

+0

@ChrisJJ, 문제 없습니다. 원 래 대답의 두 가지 옵션은 이제 두 가지 답변입니다. –

+0

Thanks PS 관련 질문 : https://stackoverflow.com/questions/46085095/whats-the-benefit-of-the-brackets-here – ChrisJJ

1

로 설정, 파일 크기에 대한 검사는 아마 그것을 처리하는 더 좋은 방법입니다. (: 작업은 2 31보다 큰 크기 문제를 방지하는 데 사용되는 문자열된다 비교 주) 파일이 존재하는 경우 하나의 옵션이

for %%a in ("myfile.txt") do if "%%~za" gtr "0" (echo ok) else (echo empty or absent) 
  • 을 수, 크기는 0에 대해 확인합니다. 파일이없는 경우

  • ~z 수정은

+0

Downvoting. 그것은 질문에 대답하지 않습니다. '예'를 주목하십시오. – ChrisJJ

+1

@ChrisJJ, 물론, 이것은 노출 된 용어로 질문에 대답하지 않지만,이 접근법이 훨씬 빠르기 때문에 포함시켜야했습니다. –