Войти

Показать полную графическую версию : Помогите изменить вывод результата команды


alex85tor
24-05-2022, 11:27
Требуется получить список разделов на жёстком диске в виде С:,D:,E:,F: и так далее, в зависимости от количества разделов, они должны быть разделены запятой без пробелов и после последнего диска не должно быть запятой.
Вот код моего батника, он выдаёт C:D:E:F, помогите пожалуйста его исправить:
@echo off
@setlocal ENABLEDELAYEDEXPANSION
for /f "skip=1 tokens=1 usebackq" %%i in (`wmic logicaldisk where "driveType=3" get name`) do @if not X%%i==X set DISKS=!DISKS!%%i
echo %DISKS%
pause
exit

alex85tor
24-05-2022, 15:10
есть ещё вариант, но выдаёт буквы дисков с пробелами через запятую, а надо без них. Вот он:
@echo off
@setlocal ENABLEDELAYEDEXPANSION
for /f "skip=1 tokens=1,2,3 usebackq" %%i in (`wmic logicaldisk where "driveType=3" get name`) do @if not X%%i==X set DISKS=!DISKS!%%i,
echo %DISKS:~0,-5%
pause
exit

alex85tor
24-05-2022, 15:35
всё сделал сам, если кому необходимо то вот:
@echo off
@setlocal ENABLEDELAYEDEXPANSION
for /f "skip=1 tokens=1,2,3 usebackq" %%i in (`wmic logicaldisk where "driveType=3" get name`) do @if not X%%i==X set DISKS=!DISKS!%%i,
echo %DISKS:~0,-3%
pause
exit

megaloman
24-05-2022, 21:58
@Echo Off
cls
Set "D="
For /f "usebackq delims=:" %%d In (`wmic logicaldisk where "driveType=3" get name ^|Find ":"`) Do Call Set "D=%%D%%,%%d:"
Set "D=%D:~1%
Echo %D%
pause
Exit /B 0




© OSzone.net 2001-2012