Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 01.10.2020
Сообщений: 52

Нужен скрипт для суммирования загруженности указанных процессов по их ID с выводом результата на экран или в .txt

07.10.2020, 11:44. Показов 1620. Ответов 11

Студворк — интернет-сервис помощи студентам
Буду рад помощи! Нужен скрипт для суммирования загруженности указанных пользователем процессов по их ID с выводом результата на экран или можно в .txt Нужны загруженности ЦП, памяти, диска и сети в процентах.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2020, 11:44
Ответы с готовыми решениями:

В чем ошибка при выводе двух целых чисел,нахождения результата их деления и выводом результата на экран?
решил вывести с клавиатуры два целых числа,написал программу как написано в учебнике Фаронова В.В. нажимаю ctrl+f9 и в итоге получаю...

Напишите программу для модификации введенной с клавиатуры строки с последующим выводом результата на экран
Напишите программу для модификации введенной с клавиатуры строки с последующим выводом результата на экран. При определении переменных ...

Поиск указанных файлов на указанном диске и вывод результата на экран
Всем привет, я здесь впервые,и вот возник такой вопрос Для поиска файлов и выведения на экран я использую команду: dir c:\*.%1 /S /b |...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
6981 / 2873 / 1104
Регистрация: 06.06.2017
Сообщений: 9,757
07.10.2020, 15:14
С сетью надо заморачиваться (скорее со сторонний софтом или PoSh). По остальному примерно так:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off&&setlocal enabledelayedexpansion&chcp 1251>nul
set id's=1608,1852,3912
 
for /f %%n in ('wmic cpu get NumberOfCores^|findstr [0-9]') do set c=%%n
for /f "skip=1 tokens=1-3*" %%a in ('"2>nul wmic path Win32_PerfFormattedData_PerfProc_Process where 'IDProcess=%id's:,= OR IDProcess=%' get PageFileBytes,PercentProcessorTime,WorkingSetPrivate"') do (
  if %%a gtr 1 (
    set/a SummPageFileBytes+=%%a
    set/a SummProcessorTimePercent+=%%b/!c!
    set/a SummMemoryBytes+=%%c
  )
)
echo Занятость
echo   процессора: %SummProcessorTimePercent%%%
echo   файла подкачки: %SummPageFileBytes% байт
echo   оперативной памяти: %SummMemoryBytes% байт
pause>nul
0
0 / 0 / 0
Регистрация: 01.10.2020
Сообщений: 52
07.10.2020, 16:22  [ТС]
Спасибо! Прописал во 2 строчку 7 нужных мне процессов через запятую, немного потестил, вроде показывает, но хотелось бы, чтобы всё в процентах показывало, а не только процессор. Спасибо еще раз заранее!
0
6981 / 2873 / 1104
Регистрация: 06.06.2017
Сообщений: 9,757
07.10.2020, 19:53
Затык в вычислениях set-ом:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off&&setlocal enabledelayedexpansion&chcp 1251>nul
set id's=1608,1852,3912
 
for /f %%n in ('wmic cpu get NumberOfCores^|findstr [0-9]') do set c=%%n
for /f %%b in ('wmic os  get TotalVisibleMemorySize^|findstr [0-9]') do set/a m=%%b
for /f tokens^=3 %%s in ('dir /a-d/-c !SystemDrive!\pagefile.sys^|find "."') do set s=%%s
for /f "skip=1 tokens=1-3*" %%a in ('"2>nul wmic path Win32_PerfFormattedData_PerfProc_Process where 'IDProcess=%id's:,= OR IDProcess=%' get PageFileBytes,PercentProcessorTime,WorkingSetPrivate"') do (
  if %%a gtr 0 (
    set/a SumPageFileBytes+=%%a
    set/a SumProcessorTimePercent+=%%b
    set/a SumMemoryBytes+=%%c
  )
)
set/a SumPageFileBytes=100*!SumPageFileBytes!/!s!
set/a SumMemoryBytes=100*(!SumMemoryBytes!/1024)/!m!
set/a SumProcessorTimePercent=!SumProcessorTimePercent!/!c!
echo Занятость
echo   процессора: %SumProcessorTimePercent%%%
echo   файла подкачки: %SumPageFileBytes%%%
echo   оперативной памяти: %SumMemoryBytes%%%
pause>nul

Поэтому vbs:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Option Explicit
Const Ids = "1608,1852,2268"
Const Cnt = 2  ' знаков после запятой
'————————————————————————————————————
Dim oWMI, oFSO, Num, i, SumPageFileBytes, SumProcPercent, SumMemoryBytes
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
For Each i In oWMI.Execquery("Select NumberOfCores FROM Win32_Processor")
   Num = i.NumberOfCores
Next
For Each i In oWMI.Execquery("Select PageFileBytes,PercentProcessorTime,WorkingSetPrivate" &_
" FROM Win32_PerfFormattedData_PerfProc_Process WHERE IDProcess=" &_
Replace(Ids, ",", " OR IDProcess="))
   SumPageFileBytes = SumPageFileBytes + CDbl(i.PageFileBytes)
   SumProcPercent = SumProcPercent + CDbl(i.PercentProcessorTime)
   SumMemoryBytes = SumMemoryBytes + CDbl(i.WorkingSetPrivate)
Next
Set oFSO = CreateObject("Scripting.FileSystemObject")
MsgBox  "процессора: " & Round(SumProcPercent/Num, Cnt) & "%" & vbLf &_
"оперативной памяти: " & Round(100*SumMemoryBytes/CreateObject("Shell.Application")._
GetSystemInformation("PhysicalMemoryInstalled"), Cnt) & "%" & vbLf & "файла подкачки: " &_
Round(100*SumPageFileBytes/oFSO.GetFile(oFSO.GetSpecialFolder(0).Drive & "\pagefile.sys").Size, Cnt) & "%", 4160, " Занятость"
Set oFSO = Nothing
Set oWMI = Nothing
0
0 / 0 / 0
Регистрация: 01.10.2020
Сообщений: 52
07.10.2020, 20:27  [ТС]
Спасибо, FlasherX ! По VBS устраивает полностью. Про "Затык в вычислениях set-ом:" ничего не понял, для меня это чужой язык. Если расшифруете в двух словах, буду признателен, для общего понятия хотя бы.

Добавлено через 17 минут
Прописал нужные процессы, немного потестил, потом закрыл их и стал по-одному открывать, ничего не стали показывать, ни bat ни vbs ? Проводник перезапустил - ничего.
0
6981 / 2873 / 1104
Регистрация: 06.06.2017
Сообщений: 9,757
07.10.2020, 20:47
Цитата Сообщение от Oduvanchikovich Посмотреть сообщение
для меня это чужой язык.
Ну так не я этот раздел выбрал.
Расшифровка простая. Выполняем бат:
Windows Batch file
1
2
3
4
5
6
@echo off
set /a a=2147483647 * 0
echo %a%
set /a b=2147483648 * 0
echo %b%
pause>nul

Битте. )
Цитата Сообщение от Oduvanchikovich Посмотреть сообщение
и стал по-одному открывать, ничего не стали показывать
Так конечно. ID же сменились.
0
0 / 0 / 0
Регистрация: 01.10.2020
Сообщений: 52
07.10.2020, 21:01  [ТС]
А ведь верно! Сменились! Как же я так?! И что теперь, мож по путям как нибудь сделать, а? Ведь каждый раз смотреть и вписывать ID это
0
6981 / 2873 / 1104
Регистрация: 06.06.2017
Сообщений: 9,757
07.10.2020, 21:13
Здрасте! Я-то думал, это для тестов, когда у процессов по несколько экземпляров.
А для повседневки ID-константы как мёртвому припарки. Логично по именах процессов делать.
0
0 / 0 / 0
Регистрация: 01.10.2020
Сообщений: 52
07.10.2020, 21:19  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
А для повседневки ID-константы как мёртвому припарки
Теперь я это и сам понял. Значит по именам надо, эх!
0
6981 / 2873 / 1104
Регистрация: 06.06.2017
Сообщений: 9,757
07.10.2020, 21:35
Лучший ответ Сообщение было отмечено Oduvanchikovich как решение

Решение

Цитата Сообщение от Oduvanchikovich Посмотреть сообщение
Значит по именам надо
ОК. Там почти то же самое:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Explicit
Const Num = 2   ' знаков после запятой
Const Names = "chrome,firefox,iexplore"
'——————————————————————————————————————
Dim oWMI, oFSO, Cores, i, SumPageFileBytes, SumProcPercent, SumMemoryBytes
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
For Each i In oWMI.Execquery("Select NumberOfCores FROM Win32_Processor")
   Cores = i.NumberOfCores
Next
For Each i In oWMI.Execquery("Select PageFileBytes,PercentProcessorTime,WorkingSetPrivate" &_
" FROM Win32_PerfFormattedData_PerfProc_Process WHERE Name='" & Replace(Names, ",", "' OR Name='") & "'")
   SumPageFileBytes = SumPageFileBytes + CDbl(i.PageFileBytes)
   SumProcPercent = SumProcPercent + CDbl(i.PercentProcessorTime)
   SumMemoryBytes = SumMemoryBytes + CDbl(i.WorkingSetPrivate)
Next
Set oFSO = CreateObject("Scripting.FileSystemObject")
MsgBox  "процессора: " & Round(SumProcPercent/Cores, Num) & "%" & vbLf &_
"оперативной памяти: " & Round(100*SumMemoryBytes/CreateObject("Shell.Application")._
GetSystemInformation("PhysicalMemoryInstalled"), Num) & "%" & vbLf & "файла подкачки: " &_
Round(100*SumPageFileBytes/oFSO.GetFile(oFSO.GetSpecialFolder(0).Drive & "\pagefile.sys").Size, Num) & "%", 4160, " Занятость"
Set oFSO = Nothing
Set oWMI = Nothing
1
0 / 0 / 0
Регистрация: 01.10.2020
Сообщений: 52
08.10.2020, 08:30  [ТС]
FlasherX, спасибо!
Цитата Сообщение от FlasherX Посмотреть сообщение
Ну так не я этот раздел выбрал
В Ответах майл ру помогли бы что-ли? В общем, пока работает (ну мало ли что)) А если что, "я всегда буду помнить о вас, я обязательно вас найду..." (Джентльмены удачи) Удачи!
0
6981 / 2873 / 1104
Регистрация: 06.06.2017
Сообщений: 9,757
08.10.2020, 09:54
Цитата Сообщение от Oduvanchikovich Посмотреть сообщение
В Ответах майл ру помогли бы что-ли?
Не делайте вид, что не в курсе, о чём я.
И вам всего. )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru