강좌 / 팁

윈 도 우 cmd 스크립트서 레이블명으로 드라이브 찾기

2018.12.25 15:43

Neutrino 조회:1847 추천:6

cmd 스크립트를 작성하다보면 가끔 드라이브명을 가져와야할 경우가 있는데요

아마도 유동성이 있는 이동식 드라이브 볼륨명을 알고싶을때 일것이며 볼륨명 중복이 없으면 됩니다.

cmd는 bash와 달리 너무 거시기하여 함수처럼 작성해보았습니다.

 

코드 작성중 다음줄 부터

 

@echo off

goto :end-getdrive

:getdrive

setlocal enabledelayedexpansion

For %%a IN (A B 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: for /f "tokens=2 delims=:" %%b in ('vol %%a: ^|find "%*"') do (

      if " %*"=="%%b" set /a conflict=conflict+1

      set getdrive=%%a:

   )

)

if !conflict! gtr 1 (echo !conflict! duplicate drive with %* volume label &endlocal &exit /b)

if !conflict! lss 1 (echo No found drive %* volume &endlocal &exit /b)

echo The drive for %* volume is !getdrive! 

endlocal & set getdrive=%getdrive%

exit /b 

:end-getdrive

 

여기까지를 넣은후 언제든

[call :getdrive  볼륨명 ] 식으로 호출하면 해당 볼륨의 드라이브를 %getdrive% 변수로 찾아옵니다..

이때 볼륨명을 현재 드라이브의 볼륨에서 추출하고자 한다면 메인블록 시작전 다음과 같이 글로벌 변수 HostVolume에 등록합니다.

이렇게 글로벌 변수에 타겟 볼륨명이 등록되었다면 항상 다음과 같이 사용할수 있습니다.

 

for /f "tokens=2 delims=:" %%a in ('vol %~D0 ^|find "드라이브"') do (setx /m HostVolume=%%a) //현재볼륨명을 전역변수에 등록

call :getdrive %HostVolume% // 이후부터 호출시 볼륨명 대신 전역변수 사용 (단 다음 부팅때부터 적용될수 있음)

 

이것으로 vhd 윈도에서 호스트 드라이브를 찾는데 쓰일수 있으며 

찾은 드라이브를 반복적으로 쓰이기 위해서는 역시 setx vhdhost %getdrive% 처럼 할수 있는데

이러면 Path에 %%vhdhost%%\Portable 식의 문구를 추가하여 어떤 드라이브로 연결되든 오류없게 패스가 작동합니다.

 

  ※ 볼륨명은 영문자 기준 32자 가능하며 대소문자 구분되고 : 은 포함불가.

  ※ 볼륨명이 없으면 탐색기에는 "로컬 디스크"로 표시되나 값은 null 이므로 찾울 방법이 없다.

  ※ ODD포함 현제 존재하는 드라이브에 대해서만 찾기를 시도한다.

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
938 기 타| 배치 파일 팁 (echo문) [4] adda 2751 9 03-08
937 윈 도 우| 관리자 계정용 PE의 한계점 (휴지통 도난사건) [15] maniaa 2746 6 05-26
936 윈 도 우| 요즘 한창인 windows rs4 update후 삭제 안되는 windows.ol... nazarino 2745 2 04-02
935 기 타| 포토샵 많이 좋아졌네요!! [3] 집에서뒹굴 2743 5 08-02
934 윈 도 우| WinPE 한글화 관련(2) [19] sunshine 2726 21 02-25
933 윈 도 우| 향상된 윈도우 자동 로그인 On/Off 스크립트 [6] zerojiddu 2719 13 02-11
932 윈 도 우| 카리스마조님 PrincePE V21 실행 방법입니다. [19] 하늘은높고 2715 19 03-06
931 기 타| bat로 포터블 만들기 간단 팁 [9] 슈머슈마 2713 20 11-12
930 소프트웨어| 동기화 기능 사용하지 않을 때 크롬 확장 프로그램 쉽게 설... [3] 미유키로즈 2713 3 03-26
929 윈 도 우| 표준 사용자 계정을 관리자 계정으로 변경하기 [13] @카리스마 2712 17 01-19
928 윈 도 우| 윈도우11 암호 입력없이 로그인 만들기 [7] 하늘은높고 2704 8 11-10
927 윈 도 우| Ventoy 설정법 (예제 포함) [1] 녹색조각 2700 10 07-27
926 모 바 일| [팁] 아이폰 배터리 교환 이번달로 마감 [12] asklee 2700 3 12-18
925 윈 도 우| 추가)PE 우측하단 워터마크에 각종 정보 넣기 [14] 히이이잌 2695 24 06-16
924 소프트웨어| Drvinst 디지탈 서명 [9] sunshine 2694 8 03-30
923 윈 도 우| 윈도우11.22H2이상에서 탐색기 탭 활성화하기-글 수정 [8] 타천사둘리 2690 10 09-21
922 윈 도 우| 모니터 색감을 조절하자 - Aura(오라) [4] 깨블리 2690 6 04-20
921 기 타| SnStar Mate가 2.43버전업 되었습니다. [유튜브동영상광고... [6] Star★Bros 2689 3 07-24
920 소프트웨어| 엑셀로 KBS1 KBS2 MBC SBS 등 편성표 가져오기 [14] 지후빠 2688 14 06-06
919 윈 도 우| 윈도우10 입력 표시기 IME 완전히 꺼짐 설정 방법 [4] 컴맹이ⓗ 2688 2 05-21
XE1.11.6 Layout1.4.8