Есть ли способ отобразить список всех дисков / разделов, например, C: \ D: \ E: \ etc, и предложить пользователю выбрать один из них для выполнения какой-либо функции? - PullRequest
0 голосов
/ 11 ноября 2019

Мне интересно, есть ли способ проверить и отобразить список всех доступных дисков / разделов на ПК и предложить пользователю выбрать один из них, набрав его букву и нажав Enter для отправки. Затем пакетный файл будет продолжен.

Желаемый результат может выглядеть следующим образом:

@echo off
echo List all drives partitions... Hit enter to continue
C, D, E, F
echo Choose a drive to proceed

Здесь пользователь вводит предпочитаемую букву диска

D
echo proceeding on D:\

Благодаря респондентам

1 Ответ

0 голосов
/ 11 ноября 2019

MountVol может быть достаточно для ваших нужд:

@Echo Off
SetLocal EnableDelayedExpansion
Set "i=0"&For /F "Delims==" %%# In ('Set # 2^>NUL')Do @Set "%%#="
For /F %%# In ('MountVol^|Find ":\"')Do (Set /A i+=1
    Set "#!i!=%%~d#"&Echo !i!. %%~d#)
:Ask
Echo(&Set /P "Drive=Choose a drive to proceed>"
Set #|Findstr "^#%Drive%=">Nul||GoTo :Ask
Set "Drive=!#%Drive%!"

Echo(Proceeding on %Drive%&Timeout 3 >NUL

EndLocal
GoTo :EOF
...