기 타 폴더 목록을 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 | - | - |
6051 | 기 타| 큰나무님 문의드립니다 [3] | 마쉽 | 263 | 10-26 |
6050 | 윈 도 우| 목록 관리 프록램 이름이 뭐죠? [2] | 슈머슈마 | 263 | 10-03 |
6049 | 윈 도 우| PE에서 글꼴깨짐 현상 [1] | 에세3밀리 | 263 | 09-22 |
6048 | 윈 도 우| 즐겨찾기 폴더 이름바꾸는 법 [2] | 컴알못러 | 263 | 09-15 |
6047 | 소프트웨어| 유튜브를 앱이 아니라 크롬에서 열게 설정했는데도 앱으로 ... [4] | 사가르마타 | 263 | 02-27 |
6046 | 소프트웨어| AnyDesk 사용시 문의 | asklee | 263 | 07-29 |
6045 | 윈 도 우| 시스템복원 오류 [1] | 단디™ | 263 | 12-21 |
6044 | 기 타| 게시판에 유튜브영상 링크 걸 때 [3] | lakeside | 263 | 04-30 |
6043 | 윈 도 우| 윈도우PE 사운드 카드질문드립니다. [2] | km5623 | 263 | 06-11 |
6042 | 윈 도 우| QuantumPE Admin 에서 부팅 후 상태?를 저장할 수는 없을까요? [2] | 귀여운나 | 263 | 02-19 |
6041 | 소프트웨어| band in a box 구할수 있나요? [2] | 미리내2013 | 263 | 03-23 |
6040 | 윈 도 우| 윈도우 업데이터 이후 사진 중간부분 백지화 증상 [1] | 보문맨 | 263 | 03-15 |
6039 | 소프트웨어| [AutoHotKey] 오토핫키 고수분에게 질문합니다. [9] | AutoMP3 | 263 | 03-22 |
6038 | 윈 도 우| 윈도우 업데이트 후에 마우스문제 | 일산촌놈 | 263 | 01-14 |
6037 | 윈 도 우| 배치파일 반복문 변수값 질문 [14] | 컨피그 | 263 | 12-28 |
6036 | 하드웨어| LG WH16NS40 Blu-ray Disc 사용할려면 별도의 프로그램이 ... [5] | joe | 263 | 12-28 |
6035 | 기 타| 같은 PE이미지를 노트북에서 DVD부팅하고 USB부팅 시 해상... [2] | dlawlsfhr | 263 | 09-21 |
6034 | 윈 도 우| 오디오관리자에서 [2] | 뜻정 | 263 | 12-13 |
6033 | 하드웨어| usb 속도 질문입니다. [3] | 바람타고산 | 263 | 10-27 |
6032 | 윈 도 우| 루프스 기능에 대해 질문 드립니다. (급합니다 ㅡㅠ;;;) [2] | 옥천TML | 263 | 10-13 |
실패했을경우 다음 명령을 실행하지 않기 위해서
'&&'를 활용할 수 있습니다.
즉 dir 명령을 먼저 넣고, &&를 붙인다음에 다시 dir>.txt명령을 한줄에 이어서 입력하면 앞쪽 명령이 성공했을 경우에만 뒤에 명령이 실행되면서 의도하신대로 될수도 있습니다.
만약에 이렇게 안된다면, if %errorlevel% neq 0 명령을 통해 오류가 안날경우에만 실행되는걸 시도해볼수도 있고,
위 두가지 방법으로도 안될경우엔 for /f 구문으로 에러가 발생할때 나오는 문자열을 토큰에 걸리게 만들어서 토큰에 에러문구가 잡히면 진행되지 않게 만들어야합니다.