기 타 폴더 목록을 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 | - | - |
76483 | 기 타| 오늘 날짜 생성 폴더 질문 입니다. [4] | 알리아스 | 453 | 11-04 |
76482 | 소프트웨어| 센트브라우저 창열기 [2] | 코프 | 496 | 11-04 |
76481 | 하드웨어| 이거 메인보드 고장인가요? [2] | 남색수염 | 668 | 11-04 |
76480 | 윈 도 우| 레지스트리 질문드립니다. [1] | 신용 | 297 | 11-03 |
76479 | 기 타| 포멧 5번쨉니다. [7] | 도라 | 1073 | 11-03 |
76478 | 윈 도 우| 혹시 rs5에서 런타임에러가 떠서 rs4로 넘어왔는데 되더라... [2] | 범땡이 | 475 | 11-03 |
76477 | 기 타| 크기가 0인 txt, jpg 파일을 모두 삭제하는 배치 스크립트 ... [11] | 로보R | 525 | 11-03 |
76476 | 기 타| 윈도우포럼 창 깜박임 [3] | 오월동추 | 571 | 11-03 |
» | 기 타| 폴더 목록을 txt로 만들어주는 batch 스크립트 질문드려요 [8] | 로보R | 292 | 11-03 |
76474 | 윈 도 우| vmware 그래픽카드 인식 관련해서.. [2] | charm | 554 | 11-03 |
76473 | 윈 도 우| 윈10 네트워크로 외장하드에 복사하면 파일헤더가 깨지는데 [1] | 번개 | 384 | 11-03 |
76472 | 윈 도 우| 윈도우10-업데이트 차단방법? [6] | 크리스 | 831 | 11-03 |
76471 | 윈 도 우| 작업관리자...메모리 사용량 [3] | 거친상인 | 817 | 11-03 |
76470 | 윈 도 우| 바이러스 및 위협 방지가 조직에서 관리됩니다...ㅠ [5] | mso | 2468 | 11-03 |
76469 | 윈 도 우| 크롬 최신인데요 자동완성 이거 죽어도 [3] | aqz | 381 | 11-03 |
76468 | 윈 도 우| 토렌트 사용시 심각한 속도 저하 관련 [9] | 줄넘기 | 1530 | 11-02 |
76467 | 윈 도 우| windows7 몇월까지 업데이트인가요? 업데이트 파일 얻을수 ... [5] | 한번에한걸음씩 | 565 | 11-02 |
76466 | 윈 도 우| 재부팅하면 사운드가 안나오는 현상 [2] | 아킬레스님 | 322 | 11-02 |
76465 | 소프트웨어| Revo Uninstaller Pro 4.0.1 실행시 오류 [2] | 냇시조니 | 335 | 11-02 |
76464 | 기 타| 고스트 백업 프로그램에 대해서... [5] | 스므디 | 703 | 11-02 |
실패했을경우 다음 명령을 실행하지 않기 위해서
'&&'를 활용할 수 있습니다.
즉 dir 명령을 먼저 넣고, &&를 붙인다음에 다시 dir>.txt명령을 한줄에 이어서 입력하면 앞쪽 명령이 성공했을 경우에만 뒤에 명령이 실행되면서 의도하신대로 될수도 있습니다.
만약에 이렇게 안된다면, if %errorlevel% neq 0 명령을 통해 오류가 안날경우에만 실행되는걸 시도해볼수도 있고,
위 두가지 방법으로도 안될경우엔 for /f 구문으로 에러가 발생할때 나오는 문자열을 토큰에 걸리게 만들어서 토큰에 에러문구가 잡히면 진행되지 않게 만들어야합니다.