윈 도 우 할당되지 않은 디스크 번호 가져오기 배치파일 질문드립니다.
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 | - | - |
92881 | 윈 도 우| TV-OUT 시 화면이 꽉차게 나오지 않네요 [9] | 『ⓖⓤⓝ』 | 803 | 02-27 |
92880 | 소프트웨어| UEFI 방식으로 설치한 윈도우를 이미지뜨려고 합니다. [4] | 하얀달 | 738 | 02-27 |
92879 | 기 타| 네이버 검색옵션 무반응 원인 좀 알려주세요 [3] | #cortana# | 282 | 02-27 |
92878 | 윈 도 우| 윈도우 설치 관련 질문드립니다. [6] | 이건본능 | 364 | 02-27 |
92877 | 기 타| 대용량 무제한 업로드 사이트 좀 어디 없을까요??? [9] | 易모地뗀思 | 838 | 02-27 |
92876 | 소프트웨어| 크롬과 사파리 그리고 기상청 홈페이지 [1] | asklee | 270 | 02-27 |
92875 | 윈 도 우| 요청 D*트님 LTSC 2021 19044.1288 [2] | Meta | 360 | 02-27 |
» | 윈 도 우| 할당되지 않은 디스크 번호 가져오기 배치파일 질문드립니다. [8] | 미니75 | 299 | 02-27 |
92873 | 소프트웨어| QuantumPE에 rocketdock 추가 방법 [2] | 목수 | 328 | 02-27 |
92872 | 윈 도 우| 즐겨찾기에 최근 문서함 폴더가 안떠요 [1] | jang3554 | 253 | 02-27 |
92871 | 윈 도 우| 부팅 트리구조 [3] | 악마와동침을 | 374 | 02-27 |
92870 | 윈 도 우| 배치파일에서 사운드(비프음 등)을 낼 수 있는 방법이 있을... [8] | 감기걸렸어 | 598 | 02-27 |
92869 | 소프트웨어| 혹시 WIM파일 백업/복원용 솔루션 GUI 프로그램 있을까요? [3] | 멀티미디어 | 512 | 02-27 |
92868 | 소프트웨어| 폴더를 보시고 어떤 PE인지 알수 있을까요? [4] | 하얀달 | 375 | 02-27 |
92867 | 윈 도 우| 파일 연결 설정 질문 드립니다. [1] | 죠 | 179 | 02-27 |
92866 | 기 타| 설치된 웨일브라우저 옮길대요 [4] | 할많하않 | 318 | 02-26 |
92865 | 기 타| VHD파일 압축은 어떻게 하는지 알고 싶습니다. [2] | jae0 | 308 | 02-26 |
92864 | 하드웨어| 블루투스 버전이 같아야 기능이 재대로 작동하는지요? [10] | joe | 354 | 02-26 |
92863 | 윈 도 우| Windows11설치시 Error나는 문제 ??? [4] | Hunting | 256 | 02-26 |
92862 | 윈 도 우| 비프음 4 번 원인 좀 알려주세요 [4] | 풍웡 | 305 | 02-26 |
여분의 하드의 모든 볼륨 삭제후 테스트했습니다.ㅡ,.ㅡ 다양한 환경에서 확인되지는 않았지만... 오류 있으면 댓글로...
아마 볼륨이 없는 디스크가 여러개면 마지막 디스크 번호를 가져올 것 같습니다. 한글 포함으로 인코딩 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