기 타 폴더 목록을 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 | - | - |
94266 | 윈 도 우| pe 제작문의 드립니다. [3] | 멋진넘 | 259 | 02-14 |
94265 | 소프트웨어| DLL Suite와 비슷한 프로그램 없나요? [3] | 제닉스 | 259 | 10-14 |
94264 | 기 타| rs3 설치후 터치키보드 문제 | rnmc | 259 | 11-09 |
94263 | 윈 도 우| 오른쪽 마우스를 할적마다.. | 테츠로 | 259 | 11-19 |
94262 | 윈 도 우| 하드웨어 변경 후 부팅 실패 해결 방법 없을까요? [2] | 나린하제 | 259 | 11-22 |
94261 | 윈 도 우| 이미지가 자꾸 깨집니다 [3] | 이탈 | 259 | 02-08 |
94260 | 하드웨어| 라이노5,3ds max, 포토샵 질문드립니다 [8] | simsuri | 259 | 02-15 |
94259 | 소프트웨어| 웹 암호관리 Lastpass 에서 <CSV파일 가져오기> 질문 [2] | 영감-2 | 259 | 03-09 |
94258 | 기 타| 기존 이메일 계정으로 바이두 로그인?? | 도리도리 | 259 | 04-06 |
94257 | 소프트웨어| softether vpn 연결 끊어지면 이더넷도 자동으로 끊는 방법 [2] | 띄용 | 259 | 09-01 |
94256 | 소프트웨어| 크리스탈 디스크 인포가 C드라이브에서만 하드를 인식합니다. [4] | 멀라 | 259 | 07-10 |
94255 | 윈 도 우| 윈10 설치 관련해서 문의드립니다. [3] | 수줍은앙마 | 259 | 09-12 |
94254 | 윈 도 우| sysprep 이지드라이버팩 광고 ... [1] | skok11 | 259 | 11-25 |
» | 기 타| 폴더 목록을 txt로 만들어주는 batch 스크립트 질문드려요 [8] | 로보R | 259 | 11-03 |
94252 | 하드웨어| 하드디스크 실린더와 트랙에 관에 [1] | sum | 259 | 11-13 |
94251 | 소프트웨어| symantec endpoint 백신 포터블 | 엉클퍼커 | 259 | 11-14 |
94250 | 소프트웨어| MPC-HC | 싼후울증 | 259 | 12-31 |
94249 | 윈 도 우| MS Authenticator 앱 [2] | WinMa | 259 | 01-20 |
94248 | 소프트웨어| 디바이스를 찾지 못합니다 [5] | joe | 259 | 05-22 |
94247 | 윈 도 우| 크롬에도 호환성보기라는 것이 있나요? [2] | 이틀전문둥 | 259 | 06-26 |
실패했을경우 다음 명령을 실행하지 않기 위해서
'&&'를 활용할 수 있습니다.
즉 dir 명령을 먼저 넣고, &&를 붙인다음에 다시 dir>.txt명령을 한줄에 이어서 입력하면 앞쪽 명령이 성공했을 경우에만 뒤에 명령이 실행되면서 의도하신대로 될수도 있습니다.
만약에 이렇게 안된다면, if %errorlevel% neq 0 명령을 통해 오류가 안날경우에만 실행되는걸 시도해볼수도 있고,
위 두가지 방법으로도 안될경우엔 for /f 구문으로 에러가 발생할때 나오는 문자열을 토큰에 걸리게 만들어서 토큰에 에러문구가 잡히면 진행되지 않게 만들어야합니다.