윈 도 우 할당되지 않은 디스크 번호 가져오기 배치파일 질문드립니다.
2022.02.27 13:15
안녕하세요 디스크관리에서 할당되지 않은 디스크의 번호를 배치파일에서 변수로 활용하고 싶습니다.
스크립트 작성능력이나 수정능력이 거의 안됩니다.ㅜㅜ
아래는 히이*잌님 스크립트 일부분입니다. 조합해서 해볼려고 했지만 역시나 제 능력 밖이네요 ㅜㅜ
::============디스크 번호들 구하기===================
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
:: 디스크 번호 DisNumS 변수에 쌓기
for /f "tokens=1-10 usebackq skip=9" %%a in (`echo lis disk^|diskpart`) do (
IF 1%%b EQU +1%%b set DisNumS=!DisNumS! %%b
)
::디스크 번호들 출력
echo 디스크 번호들:"%DisNumS%"
위에 디스크들 중에 아래의 방법으로 "볼륨이 없습니다" 라는 문구를 파싱해서..
그 디스크의 번호를 변수로 가져오고 싶습니다.
꼭 아래 방법이 아니어도 다른 방법이어도 관계는 없습니다.
::============할당되지 않는 디스크 판별===================
(
echo sel disk 1 <<<<<<방법을 몰라 직접 디스크를 선택한 상황입니다.
echo det disk
echo list disk)|diskpart>%temp%\diskinfo.txt
pause
::===========temp로 내보내진 diskinfo.txt===================
디스크가 사진에 보이는 상태는 2개 이지만 유동적으로 바뀌는 상황입니다. 그 가운데 할당되지 않은 디스크의 번호를 변수로 얻고 싶습니다.
도움 부탁드립니다.
댓글 [8]
-
지후빠 2022.02.27 17:04
-
미니75 2022.02.27 19:45
지후빠님~ 잘 됩니다. 항상 베풀어 주심에 고개숙여 감사드립니다. 편안한 주말저녁 되시고 항상 건강하세요!! 감사합니다.
-
미니75 2022.03.15 18:58
지후빠님 앞전에 이어서 아래 상황 도움 부탁드립니다.
위 스크립트에서 디스크 번호 변수를 잘 받아옵니다. 오늘 안되는 상황이 와서 왜 안되나 살펴보니
아래처럼 비어있는 이동식 디스크가 있을경우 해당 드라이브가 변수로 받아와 집니다. ㅜ
det disk 명령을 보니 역시 이동식 디스크에도 "볼륨이 없습니다." 라는 문구가 있어서
위에서 말씀하신 "볼륨이 없는 디스크가 여러개면 마지막 디스크 번호를 가져올 것 같습니다"
상황인거 같습니다.
이동식을 살펴보니 상태: 미디어 없음 이라는 문구가 있어서....
볼륨이 없습니다. 이면서 상태 : 미디어 없음 이 아니면 %noVolDisk%에 값으로 디스크 번호를 받으려면
어떻게 해야할까요??
-
지후빠 2022.03.23 11:54
안녕하세요? 쪽지를 받았는데 잊고 있었습니다. 죄송합니다. ㅜㅜ
일단 고정형 미디어가 먼저 나오는 특성을 이용하여 다음처럼 해도 될 것 같습니다. get_disk_wo_vol_2.cmd
첫번째 "볼륨이 없습니다." 디스크 번호를 찾고 빠져나옵니다.
만약 벗어나는 경우가 생기면 쪽지주십시오.^^
@echo off
for /f "tokens=1,2" %%a in ('echo lis dis ^| diskpart') do if not "%%b"=="" set i=%%b
for /l %%a in (0,1,%i%) do (for /f "tokens=*" %%b in ('^(echo sel dis %%a^&echo det dis^)^|diskpart') do if "%%b"=="볼륨이 없습니다." set noVolDisk=%%a&goto :NEXT)
:NEXT
echo %noVolDisk%
pause
-
미니75 2022.03.23 22:04
이동식 미디어가 있어도 1번 볼륨을 잘 받아옵니다. 잘 해결되었습니다. 너무 감사드립니다.!!^^
-
지후빠 2022.03.23 14:32
유형이 USB는 제외시킵니다. first_match 값이 1이면 첫번째 검출된 디스크번호를 가져오고,
0으로하면 마지막 검출된 디스크 번호를 가져옵니다. get_disk_wo_vol_3.cmd
@echo off
set first_match=1
for /f "tokens=1,2" %%a in ('echo lis dis ^| diskpart') do if not "%%b"=="" set i=%%b
for /l %%a in (0,1,%i%) do (set VolType=
for /f "tokens=1,2 delims=:" %%b in ('^(echo sel dis %%a^&echo det dis^)^|diskpart') do (
if "%%c"==" USB" set VolType=USB
if "%%b"=="볼륨이 없습니다." if not defined VolType (set noVolDisk=%%a&&if %first_match%==1 goto :NEXT)))
:NEXT
echo %noVolDisk%
pause
-
지후빠 2022.03.23 14:36
상태가 "미디어 없음"일때를 배제하고 싶으시면 아래처럼 하실 수 있습니다. get_disk_wo_vol_4.cmd
@echo off
set first_match=1
for /f "tokens=1,2" %%a in ('echo lis dis ^| diskpart') do if not "%%b"=="" set i=%%b
for /l %%a in (0,1,%i%) do (set VolType=
for /f "tokens=1,2 delims=:" %%b in ('^(echo sel dis %%a^&echo det dis^)^|diskpart') do (
if "%%c"==" 미디어 없음" set VolType=USB
if "%%b"=="볼륨이 없습니다." if not defined VolType (set noVolDisk=%%a&&if %first_match%==1 goto :NEXT)))
:NEXT
echo %noVolDisk%
pause
-
미니75 2022.03.24 14:15
상황에 맞게 잘 작동됩니다.~~!! 지후빠님 감사합니다.^^
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
92903 | 하드웨어| 블루투스 이어폰의 버전은 어떻게 확인이 가능한지요? [3] | joe | 323 | 03-01 |
92902 | 윈 도 우| 프린터 ip 주소 바뀜 [6] | 솔모로 | 1468 | 03-01 |
92901 | 소프트웨어| 오토캐드(2017) 모니터에 보이는 색상 그대로 출력하는 방... [4] | 독수리날개 | 768 | 03-01 |
92900 | 기 타| 통장 하나에 저금 가능액 [3] | 도파고 | 744 | 03-01 |
92899 | 기 타| 자동차 스마트키를 물에 빠뜨렸는데요 [14] | brucex | 1888 | 03-01 |
92898 | 윈 도 우| Boom 3D 실행 후 영상 재생 시작 시 1초 간 소리 안 들리는... | Milia | 153 | 03-01 |
92897 | 기 타| 네이버 카페에 올라온 사진을 다운받고 싶어요. [5] | helpdesk | 616 | 03-01 |
92896 | 기 타| 엑셀 애니메이션 효과 끄는법 [2] | 술잔3 | 890 | 03-01 |
92895 | 서버 / IT| 컴 2대 네트워크 형상 되지 않음 [2] | 송구장이 | 653 | 02-28 |
92894 | 기 타| 왼쪽위에 검은바가 계속 자동으로 내려갑니다 [1] | 달까마귀 | 307 | 02-28 |
92893 | 윈 도 우| 카조님 윈도11용 IE11 스크립트 부탁드려요 [2] | 컨피그 | 381 | 02-28 |
92892 | 윈 도 우| VHD파일로 업데이트 가능한 방법이 있을까요? [3] | -민군- | 354 | 02-28 |
92891 | 윈 도 우| '작업표시줄 자동숨김' 우클릭 메뉴 [6] | keen | 431 | 02-28 |
92890 | 윈 도 우| 윈도우 XP 인터넷에 대해... [6] | 도파니 | 681 | 02-28 |
92889 | 윈 도 우| 레노버 노트북 터치패드 활성화 비활성화 [9] | 슈머슈마 | 869 | 02-28 |
92888 | 기 타| 러시아 무섭네요... [8] | 해중이 | 1518 | 02-28 |
92887 | 기 타| 윈도우10 32비트는 무인설치 [1] | 안다리엘 | 562 | 02-28 |
92886 | 하드웨어| HDD 몇 개나 달 수 있나요. [9] | gongja | 823 | 02-28 |
92885 | 기 타| 우회접속 psiphon 3.171사용시......... | 해운50 | 327 | 02-28 |
92884 | 윈 도 우| 퀀텀 버전별 차이 질문 [2] | nhk | 823 | 02-28 |
여분의 하드의 모든 볼륨 삭제후 테스트했습니다.ㅡ,.ㅡ 다양한 환경에서 확인되지는 않았지만... 오류 있으면 댓글로...
아마 볼륨이 없는 디스크가 여러개면 마지막 디스크 번호를 가져올 것 같습니다. 한글 포함으로 인코딩 ANSI로 저장...
get_disk_wo_vol.cmd
@echo off
for /f "tokens=1,2" %%a in ('echo lis dis ^| diskpart') do if not "%%b"=="" set i=%%b
for /l %%a in (0,1,%i%) do (for /f "tokens=*" %%b in ('^(echo sel dis %%a^&echo det dis^)^|diskpart') do if "%%b"=="볼륨이 없습니다." set noVolDisk=%%a)
echo %noVolDisk%
pause