기 타 폴더 목록을 txt로 만들어주는 batch 스크립트 질문드려요
2018.11.03 19:07
dir /ad /b "C:\테스트\" >list.txt
하면 테스트 폴더의 하위 폴더 목록에 대해 list.txt를 만들어 줍니다.
그런데 제가 테스트 폴더 내부를 비운 상태에서 명령을 해보니
빈 내용의 txt가 생성이 되더라구요.
폴더가 비어 있을 때 txt 파일의 생성을 막는 방법이 있을까요?
댓글 [8]
-
히이이잌 2018.11.03 19:16
-
로보R 2018.11.03 19:22
제가 초보라 많이 몰라서 이해가 안됩니다. 예제 부탁드려도 될까요
dir && dir /ad /b C:\테스트\ >list.txt
해도 여전히 txt 생성이 됩니다.
-
adda 2018.11.03 21:53
for /f "tokens=1 usebackq delims= " %%a in (`"dir "C:\테스트\*" | find "파일""`) do if %%a equ 0개 goto gnd
dir /ad /b "C:\테스트\*" > list.txt
:gnd확인은 안했습니다.
-
로보R 2018.11.03 22:15
빈 폴더일 경우 txt 생성을 막는 것인지라 C:\테스트 폴더 내에는 파일이나 폴더가 없는 상태입니다.
find "파일" 을 find "폴더"로 변경 후 테스트 해보니 빈 내용의 txt 파일이 생성이 됩니다.
조건을 파일로 했을 때는 해당 명령은 유효했습니다. 다만 폴더로 했을 경우 여전히 txt 파일이 생성됩니다.
-
adda 2018.11.03 23:46
@echo off
for /f "tokens=1 usebackq delims= " %%a in (`"dir "C:\테스트\*" | find "파일""`) do if %%a equ 0개 goto and
dir /ad /b "C:\테스트\*" > list.txt
exit:and
for /f "tokens=1 usebackq delims= " %%a in (`"dir "C:\테스트\*" | find "디렉터리""`) do if %%a equ 2개 goto bnd
dir /ad /b "C:\테스트\*" > list.txt
:bndexit
-
로보R 2018.11.03 23:54
이거 되는군요!! 이렇게도 된다니..
와....감사드립니다. 기쁘게 배워갑니다! ^^
-
DarknessAngel 2018.11.03 23:25
방법은 크게 2가지 방법이 있어보입니다
첫번째는 dir의 값을 바로 출력하지말고 변수에 넣은다음 nul인경우를 체크해서 미처리하고, 아닌경우에만 echo명령으로 출력하는 방법입니다
두번째는 일단 생성한다음 용량 체크해서 0바이트면 삭제하는 방법입니다 (디스크의 파일 용량을 확인해도 되고, type(오래동안 잘 안 써서 생각이 안 나지만, 이거일껍니다)명령으로 택스트의 내용물을 읽은후 위랑 동일하게 nul여하 체크하시면 됩니다)
-
로보R 2018.11.03 23:58
제가 초보인지라 아직 이해가 부족하지만 갈무리 해서 참고토록 하겠습니다.
조언 감사합니다. ^^
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
5971 | 기 타| 습기가 차지 않는 작업용 고글 좀 추천해주세요 [4] | 커피한잔 | 262 | 03-14 |
5970 | 윈 도 우| PE 작업표시줄 우클릭 메뉴의 'Search' 삭제방법 문의 [14] | 동백66 | 262 | 02-22 |
5969 | 하드웨어| 라이젠 CPU온도와 램오버 질문드려요 [4] | 『ⓖⓤⓝ』 | 262 | 10-20 |
5968 | 하드웨어| 블루투스 키보드,마우스 추천좀 [5] | k2000 | 262 | 05-30 |
5967 | 윈 도 우| 윈도우 종료할 때 sens준비중이라고 뜨네요? [2] | brucex | 262 | 05-13 |
5966 | 소프트웨어| 3D앨범 한글패치 있으시면 올려 주시면 감사하겠습니다. [4] | 우장산 | 262 | 10-19 |
5965 | 소프트웨어| quantum pe 바탕화면에 바로가기 만들고, 유지하는 법? | ksire | 262 | 08-10 |
5964 | 기 타| 웨일 필수프로그램 반복설치 오류 | 술잔3 | 262 | 03-23 |
5963 | 하드웨어| 대학생 노트북 문의 [9] | 뷰티블마인 | 262 | 02-24 |
5962 | 윈 도 우| PE 로고 사진 변경이 안 됩니다. [5] | 하늘은높고 | 262 | 02-02 |
5961 | 윈 도 우| 설치된 업데이트 삭제 하려고 하는데 안 보입니다 [5] | 실황닷넷 | 262 | 01-25 |
5960 | 소프트웨어| 엣지, 파이어폭스 백스페이스가 안먹힙니다. [4] | 배움의진지 | 262 | 10-15 |
5959 | 윈 도 우| 오류문의 드리겠습니다 [1] | 3561 | 262 | 10-01 |
5958 | 윈 도 우| [질문] 쳌쳌 , TEMP.Font 폴더 [1] | 모모님 | 262 | 05-14 |
5957 | 윈 도 우| 윈도우10 기본앱 알람 및 시계 삭제하면 시계못보나요? [2] | 컴알못러 | 262 | 07-07 |
5956 | 윈 도 우| 윈도우10 편집프로그램 인쇄오류 이상증상 문의 드립니다 [6] | 현준윤 | 262 | 05-18 |
5955 | 소프트웨어| winrar 압축시 폴더제외 방법? [6] | 번개 | 262 | 09-09 |
5954 | 모 바 일| Bixby관련 프로그램 사용안할려고 하면 어떻게 하면 되는지요? [1] | joe | 262 | 02-21 |
5953 | 윈 도 우| 마이크 On/Off 우클릭 레지 [2] | 읍민Kaine | 262 | 02-07 |
5952 | 하드웨어| 월패드 통신 기초 개념 문의 | ksire | 262 | 01-29 |
실패했을경우 다음 명령을 실행하지 않기 위해서
'&&'를 활용할 수 있습니다.
즉 dir 명령을 먼저 넣고, &&를 붙인다음에 다시 dir>.txt명령을 한줄에 이어서 입력하면 앞쪽 명령이 성공했을 경우에만 뒤에 명령이 실행되면서 의도하신대로 될수도 있습니다.
만약에 이렇게 안된다면, if %errorlevel% neq 0 명령을 통해 오류가 안날경우에만 실행되는걸 시도해볼수도 있고,
위 두가지 방법으로도 안될경우엔 for /f 구문으로 에러가 발생할때 나오는 문자열을 토큰에 걸리게 만들어서 토큰에 에러문구가 잡히면 진행되지 않게 만들어야합니다.