강좌 / 팁

윈 도 우 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 - - -
4201 윈 도 우| Windows 7 xDark Deluxe x64 v3.1 RG 한글팩 설치 방법 [8] 레오퍼드 18882 0 07-16
4200 윈 도 우| UEFI 윈도8.1부팅시 SecureBoot 메세지 해결방법 [9] meNyu 18857 1 09-20
4199 windows 7 단축키 정리 [5] 정동원 18836 1 10-09
4198 윈 도 우| 윈도우7 업데이트 확인중 3분 안에 되는 방법 [23] 난약사 18811 4 02-18
4197 Windows Server 2008 Server 초기 셋팅 방법 [2] 클리포드 18806 0 12-31
4196 소프트웨어| 오피스 2013 토큰 백업 및 복구방법 [6] gooddew 18771 5 10-28
4195 윈 도 우| [컴퓨터매니아의 컴퓨터 살펴보기] 1-(1) - MSDaRT 설치, ... [7] 컴퓨터매니 18759 11 01-20
4194 윈 도 우| USB UEFI 설치 팁 [29] 보[boram]람 18758 3 11-09
4193 윈 도 우| 파티션 합치기(Partition Wizard Professional 5) [9] 요나 18754 1 07-15
4192 윈 도 우| VHD를 WTG로 사용하기_Win8 [11] 하늘보기 18749 18 04-14
4191 윈 도 우| Win 8 시작메뉴 바꾸기. [12] 로엔 18746 0 09-15
4190 소프트웨어| Blu-ray에 사용되는 SUP 자막을 만들자. - 제2부- 동방전패 18745 1 06-06
4189 .wim 파일 수정하기 (install.wim..등) [3] WIM 18735 1 02-19
4188 윈 도 우| vhd로 pe를 사용하자. [11] 박군 18719 6 04-19
4187 새롭고 쉬운 AWARD BIOS개조 방법 [4] 오다가다 18666 0 09-09
4186 서버 / IT| k-style님의 간단하게 유투브 동영상 받기 강좌 그림 설명 [17] 일교차 18657 13 03-07
4185 윈 도 우| 윈도우 7 . IE11 설치 한뒤. [9] 억무리 18640 7 11-09
4184 윈 도 우| IE11 호환성 개선, 'IE11 엔터프라이즈 모드 for Windows7'... [29] 캇떼니시로 18608 4 03-17
4183 소프트웨어| 한컴오피스 2014 홈에디션 MLP 정품 다운로드 방법 [7] 일교차 18605 1 11-20
4182 윈 도 우| Windows 7 SP1 롤업 업데이트 2775511 CatzVader 18589 2 04-08
XE1.11.6 Layout1.4.8