기 타 폴더 목록을 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 | - | - |
6032 | 하드웨어| usb 속도 질문입니다. [3] | 바람타고산 | 263 | 10-27 |
6031 | 윈 도 우| 루프스 기능에 대해 질문 드립니다. (급합니다 ㅡㅠ;;;) [2] | 옥천TML | 263 | 10-13 |
6030 | 소프트웨어| PE 프로그램 추가 관련 질문이 있습니다 [5] | 모노시티 | 263 | 10-04 |
6029 | 소프트웨어| 7zip으로 압축을 풀려면은 에러가 납니다 [1] | IQ제로 | 263 | 09-12 |
6028 | 하드웨어| 그래픽에 점등 [4] | rose2 | 263 | 08-14 |
6027 | 기 타| IDM으로 네이버 메일 첨부파일 다운로드시 파일제목(한글)... | 홍은동초짜 | 263 | 09-16 |
6026 | 소프트웨어| 윈도우 미디어 재생 속도 설정을 1.4배속으로...... [2] | cosmosa | 263 | 06-15 |
6025 | 윈 도 우| 랜섬웨어 ohorvpc 복호화 하는툴 없나요? [1] | 슈머슈마 | 263 | 04-16 |
6024 | 서버 / IT| 윈도우 서버 2019 데이타 센터에서 윈도우 PIN 활성화 문의 | 락인 | 263 | 01-18 |
6023 | 윈 도 우| 비스타 홈 프리미엄 32bit [3] | 수사반장 | 263 | 10-07 |
6022 | 하드웨어| usb 작업표시줄에 표시가 안됩니다. [1] | 개울소리 | 263 | 02-07 |
6021 | 윈 도 우| 레지스트리 관련 문의 [3] | Kamn | 263 | 07-13 |
6020 | 윈 도 우| 첨X다님 윈도우 문의임니다. [2] | 불형 | 263 | 07-11 |
6019 | 윈 도 우| wav 파일 포맷에 관하여 [4] | 하츠 | 263 | 07-13 |
6018 | 기 타| 폰트 이름을 알고 싶습니다 | dj247 | 263 | 06-16 |
6017 | 윈 도 우| 디스크 사용공간 [1] | DSFDSA | 263 | 03-22 |
6016 | 소프트웨어| 윈키고스트로 백업을 받아 [2] | 가온누리 | 263 | 02-07 |
6015 | 소프트웨어| Adguard Premium 광고차단 필터 추천해주세요!! [1] | 보노보노아 | 263 | 01-24 |
6014 | 윈 도 우| 컴퓨터에서 일본어가 제대로 보이게 하려면 어떻게 해야 하... [3] | 하얀달 | 263 | 01-10 |
6013 | 윈 도 우| 윈10 wim 트윅 질문... [1] | 도전정신 | 263 | 12-19 |
실패했을경우 다음 명령을 실행하지 않기 위해서
'&&'를 활용할 수 있습니다.
즉 dir 명령을 먼저 넣고, &&를 붙인다음에 다시 dir>.txt명령을 한줄에 이어서 입력하면 앞쪽 명령이 성공했을 경우에만 뒤에 명령이 실행되면서 의도하신대로 될수도 있습니다.
만약에 이렇게 안된다면, if %errorlevel% neq 0 명령을 통해 오류가 안날경우에만 실행되는걸 시도해볼수도 있고,
위 두가지 방법으로도 안될경우엔 for /f 구문으로 에러가 발생할때 나오는 문자열을 토큰에 걸리게 만들어서 토큰에 에러문구가 잡히면 진행되지 않게 만들어야합니다.