Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Помогите изменить вывод результата команды (http://forum.oszone.net/showthread.php?t=351264)

alex85tor 24-05-2022 11:27 2985598

Помогите изменить вывод результата команды
 
Требуется получить список разделов на жёстком диске в виде С:,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 2985623

есть ещё вариант, но выдаёт буквы дисков с пробелами через запятую, а надо без них. Вот он:
@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 2985631

всё сделал сам, если кому необходимо то вот:
@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 2985677

Код:

@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



Время: 23:49.

Время: 23:49.
© OSzone.net 2001-