Я пытаюсь сделать пакетный скрипт, который будет выводить следующим образом для фиксированного диска:Batch - выходные WMIC Команда несколько строк добавить строку (Computer Name)
Имя компьютера, Drive Letter, Free Disk Space
вывод может быть одной строкой в случае, если есть только один диск или несколько строк, если есть более одного диска
теперь со следующей командой, я получаю вывод для компьютера, но это не дает компьютеру имя. Мне нужно включить имя компьютера, потому что я буду запускать его на нескольких компьютерах с помощью сценария, использующего цикл.
WMIC/узел: "% COMPUTERNAME%" LogicalDisk Где DriveType = "3" Получить DeviceID, FreeSpace
используя пакетный сценарий, я могу назвать выход компьютера, но он появляется только над диском-космических линий
echo off
for /f %%i in (computers.txt) do (
echo %%i >>outputfile.txt
wmic /node:"%%i" LogicalDisk Where DriveType="3" Get DeviceID,FreeSpace' >>outputfile.txt
)
если имя компьютера «COMPUTER1» и имеет 3 привода, это идет, как
COMPUTER1
DeviceID FreeSpace
C: <free space bytes>
D: <free space bytes>
E: <free space bytes>
то, что я хочу это:
ComputerName DeviceID FreeSpace
COMPUTER1 C: <free space bytes>
COMPUTER1 D: <free space bytes>
COMPUTER1 E: <free space bytes>
Событие заголовок столбца может быть исключен.
Я считаю, что это может быть сделано для цикла, но не знаете как. любой может посоветовать, будет оценен. Благодарю.
это просто замечательно! большое спасибо. Он решает, что мне нужно. Это настоящая сила этого сообщества с таким большим количеством людей! – arifr
сделал некоторые изменения, чтобы захватить размер диска и положить разделитель для/f "tokens = 1,2,3" %% a in ('wmic/node: "%% i" LogicalDisk Where DriveType^= "3" Получить идентификатор устройства ^, Size ^, FreeSpace^| find ":" ') do @echo %% i ~ %% a ~ %% b ~ %% c >>% OUTPUT_FILE% – arifr
просто имейте в виду, 'wmic' сортирует результат" столбцов "в алфавитном порядке. Если вы хотите «DeviceID, Size, FreeSpace», вам нужно «%% a %% c %% b' – Stephan