윈 도 우 CMD 배치문 ???
2017.07.24 14:40
안녕하세요...
CMD 배치문에 대해서 문의합니다...
하드디스크 드라이브의 각 볼륨명을 검색해서, 지정된 볼륨명(Windows7)과 정확히 일치하는(단, 대소문자 무시) 드라이브 명을 찾는 과정입니다..
Ghost 부속파일인 OMNIFS32.EXE 를 사용한 것은 히든파티션도 검색해 주기 때문입니다..
아래는 하드디스크 현황입니다...
omnifs32 info 출력 화면입니다. 여러 test 하느라 볼륨명 다른 사진이 첨부되었네요. (DATA_Windows7 ==> WIndows7_DATA)
사용된 명령어 입니다.. omnifs32 info | findstr /i "Windows7" > disk.txt 그리고 결과물...
원하는 건 첫 행 (검색어와 정확히 일치) 뿐인데.... 원치않는 두 번째 행 ( 검색어를 포함하는...) 까지 출력됩니다..
제가 어떤 옵션을 누락했거나,,,,, 잘 못된 명령어를 사용한 것 같습니다..
1. OMNIFS 와 FINDSTR (?)를 사용한 조건에 맞는 정확한 배치명령문을 알고 싶습니다..
2. 히든파티션이 없다는 전제하에 OMNIFS 가 아닌 윈도우 자체명령을 이용한 배치문을 알고 싶습니다...
3. 검색해서 해당 볼륨이 없거나 또는 동일한 볼륨명을 갖는 드라이브가 두 개 이상 존재할 경우 에러메세지를 출력하는 명령을 알고 싶습니다.
감사합니다..
--
댓글 [5]
-
이세라 2017.07.24 20:51 -
바람낙엽 2017.07.24 20:59
-
DarknessAngel 2017.07.25 02:08
매번 하는 애기지만, cmd/bar의 내장 문자열 처리기능은 사용하기 불편하고, 기능상 제약이 크므로 추천하지 않습니다
라이센스 문제가 아니라면 busybox등의 GNU계열의 바이너리를 추가해서 그쪽으로 문자열 처리를 하시길 추천합니다
-
차일드 2017.07.25 03:06 매번 쓰레기 같은 갖잖은 대답만 하시네
그리좋은 비지박스던 gnu계열이 좋으면 강좌라도 해보소
글번호 8544809에도 이딴식으로 올려 작상자/댓글자들 자괴감 빠지게
만드는 시덥지 않는 댓글 자제좀 하죠!
그냥 질문자에 대한 답글이 아니면 달지 밀아요
-
DarknessAngel 2017.07.25 13:24
굳이 썩어넘치는게 리눅스용 문자열 편집 예문인데, 중복 하나 더 작성해서 무슨 보템이 된다는건지? (차라리 그 시간에 다른 덜 흔한 주제로 작성하는게 효율적입니다)
busybox등을 쓰면 리눅스용 문자열 다루는 예문 거의 그대로 (bash문법 제외) 이용 가능합니다 (랄까 특별한일 없다면 7이상이라면 내장된 파워셀을 쓰는 ps1타입 스크립트로 작성하는게 더 현실적입니다) (PE등의 제한된 환경이 아닌 이상 굳이 구시대 유물같은 케케묵은 dos시절의 문법을 고집할 이유 어딧는지?)
장기적으로 보면 저걸로 익힐 시간에 차라리 파워셀 문법을 익혀두는게 더 보템이 됩니다 (RS3에서는 기본셀이 파워셀로 교체될정도로 마소도 밀고 있습니다) (아니면 리눅스 타입으로 익힌후 기능 추가제거를 통해 해당 기능 설치하면 굳이 수동으로 바이너리등을 복사 안 해도 잘 됩니다 (차후 윈도 이외의 OS다룰 일 있을때도 써먹을 수 있으니 배워두면 보템 됨) )
이대로 가면 RS5(가칭)쯤 되면 아에 셀자체가 사라질지도 모르는 구시대 유물 문법을 추천하고 싶진 않습니다
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
100029 | 윈 도 우| 자료실의 Windows 7 Alienware Ultimate 32bit, 64bit에 대... | 소천 | 164970 | 10-01 |
100028 | 윈 도 우| 자료실의 Windows 7 Alienware Ultimate 32bit 받아볼수 없... [2] | 오백원 | 164106 | 10-11 |
100027 | 윈 도 우| 바로가기실행 아이콘의 동작불능 | 가난한사람 | 160512 | 02-01 |
100026 | 윈 도 우| 자료실의 Alienware Windows7의 로고를 원래대로 복원하는 ... [4] | 소천 | 150536 | 10-05 |
100025 | 윈 도 우| Windows 7의 관리 기능을 집약한 숨겨진 GodMode의 존재 [5] | 죠타로 | 123849 | 01-07 |
100024 | 윈 도 우| PE 시작메뉴랑 작업표시줄 숨길 수 없나요? [11] | 배추보쌈 | 107074 | 01-18 |
100023 | 기 타| html&css 중급자 이상자 분께 도움을 요청해봅니다,, [3] | ㄴ초심ㄱ | 102032 | 05-16 |
100022 | 하드웨어| KMS Activator에 대해서 질문있습니다. | 오잉!? | 85419 | 04-20 |
100021 | 윈 도 우| 카리스마조님의 바로가기 말인데요~ [1] | KOOL하게 | 84406 | 01-07 |
100020 | 윈 도 우| 가젯이 CPU 점유율 상승문제에 영향을 주는군요. [22] | BigShit | 83694 | 11-26 |
100019 | 윈 도 우| page fault in nonpaged area [1] | 한강한뺨뷰 | 80298 | 08-24 |
100018 | 윈 도 우| 인터넷 바로가기 관련 궁금한점이 있습니다. [1] | 도라란 | 79931 | 07-06 |
100017 | 윈 도 우| 모든 바로가기를 실행하면 연결프로그램 선택 창이 떠요ㅠㅠ [4] | 네버s2 | 73049 | 09-18 |
100016 | 윈 도 우| 9down.dom 같은 사이트 또 없나요 [3] | 애벌레 | 67504 | 12-11 |
100015 | 하드웨어| 문의)) "kms Server" 삭제 안하고 써도 괜찮나요??? [1] | Chobits0914 | 66870 | 04-30 |
100014 | 윈 도 우| suk님 시간되시면 부탁드립니다. [7] | 초보라서죄 | 64980 | 12-07 |
100013 | 하드웨어| 문의)) KMS인증과 가상바이오스 인증 중 안정적인 것은 어... [2] | Chobits0914 | 64577 | 06-18 |
100012 | 윈 도 우| win7 / vista god mode 활성화 시키기 [7] | 카츠라 | 61011 | 01-06 |
100011 | 윈 도 우| [A.I_7T]SLIC2.1 인증에대해.. [1] | 김간지 | 58991 | 01-24 |
2번에 해당하는 배치 파일입니다.
아래 배치문에는 두가지가 예문이 포함되어 있으므로 길다고 혼동 하시지 마세요
아래 빨간 call: dual 이라는 구문 보일겁니다.
빨간 부분을 call: only로 바꾸면 완전 일치 볼륨만 찾습니다.
:only <- 완전 일치(대소문자 구분없이 완전 일치 볼륨)
:dual <- 1개 이상(즉, 찾는 문자가 들어 있는 모든 볼륨)
:end <- 찾으면 카운트 출력함
자세한 설명은 보시고 탐독 하세요~
@echo off
setlocal
:start
set label=%1
set /a cnt=0
for %%a in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
if exist %%a call :find %%a
)
goto END
:find
vol %1 | find /I "%label%" > chk.txt
if %ERRORLEVEL% EQU 0 (call :dual)
goto :EOF
:only
set /p name=<chk.txt
for /f "tokens=2 delims=:" %%b in ("%name%") do (set vol=%%b)
set vol=%vol:~1%
if /I "%vol%" == "%label%" set /a cnt+=1
goto :EOF
:dual
set /p name=<chk.txt
set /a cnt+=1
goto :EOF
:end
echo 찾음 = %cnt%
endlocal
---------------------------------------------------
call :dual 로 했을때
실행> check.cmd windows7
결과> 찾음 = 2
call :only 로 했을때
실행> check.cmd windows7
결과> 찾음 = 1