Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Оперативная память

Ответить
Настройки темы
CMD/BAT - Оперативная память

Новый участник


Сообщения: 26
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: Malukov.Dmitry
Дата: 01-12-2018
Здравствуйте ! Подскажите пожалуйста, как лучше реализовать сценарий со следующими условиями:

-Нужен сценарий, определяющий количество свободной доступной RAM (x86)
-Выполнение произвольной команды исходя из полученных данных по шаблону:
Если %freeram%>2GB - запускается program.exe и сценарий завершает работу без ожидания завершения выполнения команды
Если %freeram%<2GB - ....
Если %freeram%<1GB - ....
Если %freeram%<512MB -....

Отправлено: 09:44, 01-12-2018

 

Ветеран


Contributor


Сообщения: 2703
Благодарности: 1683

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Оперативная память

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Оперативная память 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




 
Переход