|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Оперативная память |
|
CMD/BAT - Оперативная память
|
Новый участник Сообщения: 26 |
Здравствуйте ! Подскажите пожалуйста, как лучше реализовать сценарий со следующими условиями:
-Нужен сценарий, определяющий количество свободной доступной RAM (x86) -Выполнение произвольной команды исходя из полученных данных по шаблону: Если %freeram%>2GB - запускается program.exe и сценарий завершает работу без ожидания завершения выполнения команды Если %freeram%<2GB - .... Если %freeram%<1GB - .... Если %freeram%<512MB -.... |
|
Отправлено: 09:44, 01-12-2018 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Malukov.Dmitry,
У Вас какой-то запутанный код. Попытался упростить. Не очень отладил, нет Ваших утилит.
@Echo Off cls Title Создание RAM-диска Set "Default=X:\windows\temp" :Start IF /I Not "%temp%"=="%Default%" Call :UnmountRamDiskPromt ||Exit /B :GetInfo Set /A RD1=2621440 Set /A RD2=2097152 Set RD3=1572864 For /f "skip=1" %%p in ('wmic os get freephysicalmemory') Do Set /A m=%%p &GoTo :RamDiskOpt :RamDiskOpt Echo Свободной памяти RAM: "%m%" Килобайт Echo. Echo Текущее расположение TEMP: %temp% Echo Текущее расположение TMP: %tmp% Echo. If %m% LSS %RD3% ( :MemoryLow nircmd infobox "Не рекомендуется создавать RAM-диск при объеме свободной памяти менее 1.5 ГБ. Операция будет прервана." "Ошибка" Exit /B 1 ) Set /A rdsize=512 If %m% GEQ %RD2% Set /A rdsize=768 If %m% GEQ %RD1% Set /A rdsize=1024 Echo Свободно=%m%Kb RAM-диск=%rdsize% :getFreeDisk Set "Disks=" For /f "usebackq skip=1 tokens=1,2 Delims=:" %%A IN (`"wmic logicaldisk get caption,name"`) DO If Not "%%B"=="" Call Set "Disks=%%Disks%%%%A" For %%A IN (B K L M N O P Q R S T U V W) DO ( Echo %Disks%|Find /I "%%A" >nul 2>&1 ||(Set "disk=%%A:" &GoTo :FreeDisk) ) :FreeDisk Echo Буква диска=%disk% :MountRamDisk imdisk -a -t vm -s %rdsize%M -m %disk% -p "/fs:ntfs /q /y /v:RAM-Disk">nul md %disk%\Temp>nul Setx Temp %disk%\Temp>nul Setx Tmp %disk%\Temp>nul If Exist "%disk%\Temp\" nircmd infobox "Папка TEMP успешно перемещена на диск %disk%." "Готово"&&restartshell If Not Exist "%disk%\Temp\" ( nircmd infobox "Не удалось создать RAM-диск или внести изменения в реестр. Будет выбрана папка по умолчанию (%Default%)" Setx temp "%Default%" Setx tmp "%Default% restartshell >nul ) Pause GoTo :Eof :UnmountRamDiskPromt Title Отключение RAM-диска Echo. Echo Папка TEMP уже перемещена на RAM-диск. Отключить все RAM-диски и установить папку TEMP по умолчанию ? Echo. Echo ВВедите: CHOICE /C YN /M "Y-для продолжения, или N-для выхода" If %ErrorLevel%==2 Exit /B 0 Set tmpdir=%temp% Set tmpdisk=%tmpdir:~0,2% imdisk -d -m %tmpdisk%>nul Setx temp %Default% >nul Setx tmp %Default%>nul restartshell nircmd infobox "Все RAM-диски были отключены. Установлена папка TEMP по умолчанию." "Готово" Exit /B 2 |
------- Отправлено: 22:08, 09-12-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Оперативная память | Solublek | Материнские платы и память | 2 | 11-03-2017 09:09 | |
ОПЕРАТИВНАЯ ПАМЯТЬ | Андрей97 | Металлолом | 2 | 26-01-2014 19:24 | |
Разное - Оперативная память | sanya_lampard | Прочее железо | 5 | 05-04-2013 19:06 | |
Разное - Оперативная память | Владимир161086 | Microsoft Windows 7 | 2 | 13-01-2012 09:54 | |
Оперативная память | Verochka | Материнские платы и память | 11 | 23-11-2009 09:43 |
|