![]() |
Как определить, что FIND выпал с ошибкой Недостаточно памяти
Приветствую.
Есть код, определяющий, запущен ли процесс, и на его основании запускает игру или стим: Код:
TaskList /FI "ImageName EQ %steam%">nul | Find /I "%steam%">nul Так вот мне надо, чтобы если возникает ошибка о недостатке памяти, повторять проверку, пока она не пройдет. Раза со 2-3 она обрабатывается и дальше все работает. Или может есть какой-то другой способ проверки запущен ли процесс? |
EdMSL, Вы пишите:
Цитата:
Но, раз Вы написали для вывода TaskList >nul, то на Find ничего не попадет, и ErrorLevel, выданный Find, будет =1, и Ваш If теряет смысл. Кстати, а почему бы не сделать без явного If: Код:
TaskList /FI "ImageName EQ %steam%"| Find /I "%steam%">nul &&GoTo :Game |
Цитата:
Цитата:
И,выходит, ошибку о недостатке памяти никак не отследить? Ибо решения этой проблемы я тоже не нашел. |
EdMSL, А если так (не тестировал):
Код:
TaskList /FI "ImageName EQ %steam%" 2>&1| Find /I "%steam%">nul &&GoTo :Game |
Цитата:
В общем, пока FIND будет выдавать ошибку памяти, но завершаться с кодом 0, так и будут проблемы. |
Может, перейти на более современные техники (powershell)?
Код:
if (get-process steam.exe) { |
Цитата:
Я пробовал Код:
powershell get-process | findstr "%steam%" |
Идея в том, чтобы выкинуть findstr и работать не со строками, а с объектами.
Цитата:
Код:
-file "C:\путь\к\скрипту\скрипт.ps1" -executionpolicy bypass Но надо менять код целиком, чтобы не заниматься извращениями по скрещиванию в одном скрипте cmd и ps. Напишите, что конкретно должен делать код в случае, если Стим запущен или не запущен. |
Цитата:
Код:
cd .\ Код:
start "" /D ""!SteamPath!"" ""%steam%"" -applaunch 22330 Код:
start /WAIT "" "%game%" Все. В идеале нужна проверка, что если ключи реестра не найдены, то делать предупреждение и выход, но я е добрался до этого еще. Код:
IF %SteamPath% == 0 For /F "Tokens=2*" %%I In ('Reg Query "HKCU\SOFTWARE\Valve\Steam" /V SteamPath') Do Set SteamPath="%%J" |
Вопрос не актуален. Написал код для .exe на Паскале.
Однако, если будет у кого-то решение, то выкладывайте, интересно будет взгянуть. |
Время: 15:30. |
Время: 15:30.
© OSzone.net 2001-