[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 3 месяца
  • Сообщений: 1099
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
conty9, добрый вечер. Глянул. Вот спасибо. Буду изучать. Появился интерес.

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
Скрипт PECMD, "невидимая" память подключится только на х64-процах и при наличии более 2,5Гб доступного ОЗУ (в реестр будет внесено EnableIM=1).
TEAM EXEC* TEnvi=!cpu64.exe Y|LPOS TEnvi=CPU is 64,1,%TEnvi%|FIND MEM>2560,IFEX $%TEnvi%=5,REGI #HKLM\system\ControlSet001\Services\FancyRd\Parameters\EnableIM=1
-
21732
21728,IFEX $%TEnvi%=5
Если "было найдено в строке вывода с 5 позиции" то делаем REGI ...
а как связано (AND ) с FIND MEM>2560 просто запятая ???
gera_serg, для команд-условий (IFEX, FIND) после запятой - пишем то, что выполнить при соблюдении, а после "!" - при несоблюдении условия. Например, будет работать другой вариант записи:
... FIND MEM<2561,!IFEX $%TEnvi%=5,REGI ...
Но с "!" нужно аккуратно, если у нас подряд несколько условий.
Скажем, нужно выполнить действие, только если соблюдены ВСЕ 5 условий. Тогда запись выглядит так: Условие 1, Условие 2, Условие 3, Условие 4, Условие 5, Действие.
А вот так - будет интерпретировано совсем не так, как мы думаем: Условие 1, Условие 2, Условие 3, Условие 4, Условие 5,! Действие.
"Действие", будет выполнено при несоблюдении 1-го условия. И все остальные условия будут проигнорированы. Почему так? Да очень просто - первое условие разбирает всю строку после себя. То, что после запятой - на выполнение при соблюдении условий. А вот то, что после первого "!" - выполнение при несоблюдении. И неважно, что "!" стоит после 5-го условия - он будет относиться к 1-му.

[Цитировать]

    gera_serg
  • 1171
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 1421
  • Репутация:9

    [+] [-]
21738память подключится только на х64-процах и при наличии более 2,5Гб
А вариант х32 процессора и памяти 8гиг в принципе может же существовать?
Просто переключение на EnableIM=1 однозначно приведет загрузку в ступор или просто сколько есть видимой для процессора памяти, столько и будет использовано под примо рам диск ?

[Цитировать]

    gera_serg
  • 1171
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 1421
  • Репутация:9

    [+] [-]
IFEX[|] <condition>,[Command1][! Command2] - запись из Хелпа
как-то не выглядит допустимым на множественные Условие 1, Условие 2, Условие 3, Условие 4,
пример там же
IFEX [ $2 < 12 & C:\>10 & C:\ > 10 & ( C:\boot.ini ) & MEM > 100 ], MESS YES //E.G. of combination.

Комментарий от Гость


Да без проблем - хоть сотню условий (без "!") можно поставить.
А вот квадратные скобки - это уже другой уровень, объединение условий или выполнение при соблюдении хотя бы одного из условий. Все зависит от того, как записать.

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
21741вариант х32 процессора и памяти 8гиг в принципе может же существовать
Физически - может. Но уже на этапе запуска Bios/UEFI "лишняя" память будет отброшена. Впрочем, даже если это было бы не так... разберем строчку на составляющие
TEAM - групповая команда - т.е., несколько команд, разделяемых "|"
EXEC* TEnvi=!cpu64.exe Y - запустить в скрытом режиме с ожиданием cpu64.exe Y, результат вывода поместить в переменную TEnvi
LPOS TEnvi=CPU is 64,1,%TEnvi% - проверить наличие в %TEnvi% фразы "CPU is 64". При наличии TEnvi=5 (т.е., начиная с какого символа в переменной находится наша искомая фраза - в данном случае, начиная с 5-го символа), при отсутствии TEnvi=0 (т.е., фраза не найдена)
FIND MEM>2560 - условие: если доступной памяти больше 2560 (Мб), тогда выполняем то, что после запятой. Если меньше - выходим (поскольку "!" больше не встречается в этой строке)
IFEX $%TEnvi%=5 - условие, если %TEnvi%=5, тогда выполняем REGI #HKLM\system\ControlSet001\Services\FancyRd\Parameters\EnableIM=1
Т.е., переключение на EnableIM=1 возможно только при соблюдении 2-х условий: доступно более 2,5Гб памяти и процессор поддерживает х64. Если памяти меньше или процессор х32 - тогда ничего не делать (дефолтное EnableIM=0).


Последний раз редактировалось: Гость (2016-03-18 18:36), всего редактировалось 3 раз(а)

[Цитировать]

    gera_serg
  • 1171
  • Стаж: 8 лет 9 месяцев
  • Сообщений: 1421
  • Репутация:9

    [+] [-]
21747Да без проблем - хоть сотню условий
IFEX <condition>, [command 1] [! Command 2]
Feature
Whether to set up a conditional expression based on the establishment of executive orders 1, 2 does not hold then execute command.
Parameters
- Conditions on the [free memory] or [disk space] or [button] or [numerical variables] or [directory] judgments.
- Available memory MEM <comparison operator> value.
- Disk space R: \ <comparison operator> value, R: that letter.
- Keys KEY <comparison operator> <# virtual key code | letters>.
- File directory file directory name, you can use wildcards.
$% value of the variable value of the variable name% <comparison operator> numeric or numeric variable names, numerical variables
are set CALC a variable assignment or ENVI.
- Comparison operators comparison operators for the "<",">","=", represent "less than", "greater than", "equal."
- Numerical comparison of the values, disk and memory units are MB, key value is the key code.
Example
IFEX KEY = # 17, TEAM TEXT Search fonts | FONT \WINDOWS! TEAM TEXT install fonts | FONT %CurDrv%\external procedures\FONT
IFEX C:\Windows,! MESS directory C:\Windows does not exist, \n please click [OK]. Check # OK @ directory
Remarks
* This command powerful, more complex, and can be nested (IFEX or FIND) used to determine the number of conditions. FIND command
with similar features.
* <conditional expression> after the "" number can also be "*" instead.
* This order nested IFEX or FIND command, the command can not be nested using the "!" Separator.
* IFEX command is used to detect key, simply key "A" ~ "Z" or "0" ~ "9" can be letters, use the other keys, said key code;
* If the user presses the 'A' ~ 'Z' or '0 'to '9' these keys, the key results will be stored in the environment variable% PressKey%.
* This command is used to determine variables, all variables according to double-type to handle (up to 4 places of decimal).
Не видно мне допустимости сотни условий в этой версии (Modified by Huu Vinh © CVC108MTL 08.18.2011...)
Может есть какое-то более полное описание этой команды или нужно использовать другую версию PECMD)?

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]

Скрипт для создания списка исключительно 'работающих' буковок дисков

TEAM FDRV NEnvi=*:|ENVI AllDrv=
FORX * %NEnvi%,DEnvi,
{* FDRV *vol ,TEnvi=%DEnvi%
FIND $%TEnvi%=,EXIT -!ENVI AllDrv=%AllDrv% %DEnvi%
}
MESS %AllDrv%

Скрипт работает так: вначале в NEnvi помещается список всех имеющихся буковок дисков (FDRV NEnvi=*:). Потом по этому списку проверяется наличие файловой системы (FDRV *vol ...). При её наличии буковка добавляется в список %AllDrv%. После отработки в %AllDrv% находится перечень всех "рабочих" буковок, который можно использовать, например, для операции поиска на диске (без опасности обращения к поврежденному диску или диску-пустышке). Этот список выводится на экран MESS %AllDrv%.
Как можно использовать этот скрипт? Например, нам нужно найти 2k10\Programs-2k10\Win2k78.bat. Тогда после скрипта организуем поиск и запуск:
FORX * %AllDrv%,DEnvi,IFEX %DEnvi%\2k10\Programs-2k10\Win2k78.bat,TEAM EXEC %DEnvi%\2k10\Programs-2k10\Win2k78.bat|EXIT -
Эта строчка перебирает все буковки из списка в %AllDrv%. Если на конкретном диске найден Win2k78.bat, тогда запуск бантика и выход из перебора буковок.

Получить информацию о файле (разрядность х32/х64, версия файла, время, атрибуты)

ENVI XFile=%Path%\MyFile.exe
TEAM GETF %XFile%,0x3C#2,TEnvi|MSTR TEnvi,DEnvi=<1><2>%TEnvi%|CALC -base=16 DEnvi=%DEnvi%*256+%TEnvi%+0x19|GETF %XFile%,%DEnvi%#1,TEnvi|FIND $%TEnvi%=0x02,CALC #Razr=64!CALC #Razr=32
MESS %XFile% - разрядность х%Razr%
SITE ?TEnvi=FVER,%XFile%
MESS %XFile% - версия %TEnvi%
SITE ?NEnvi,TEnvi,DEnvi=FTIME,%XFile%
MESS %XFile% - время создания файла %NEnvi%, время записи файла %TEnvi%, время последнего доступа %DEnvi%
SIZE TEnvi=%XFile%
MESS %XFile% - размер файла %TEnvi% байт
SITE ?A,H,R,S=FATTR,%XFile%
MESS %XFile% - атрибуты файла A=%A% H=%H% R=%R% S=%S%

[Цитировать]

    puhpol
  • 2
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 888
  • Репутация:73

    [+] [-]
Приветствую Господа! aa
Как прописать в pecmd.ini строку вида :
Если переменная не найдена запустить программу?
Есть переменная которая запускает скрипт.
Нужно прописать запуск программы , если скрипт не найден....
IFEX %TUnvi%,EXEC --wait %TUnvi%
Насколько понимаю, если переменная %TUnvi% есть - запуск с ожиданием.
Как прописать :если %TUnvi% не найдена - запуск другой программы....
conty9, Огромное спасибо за "примеры" , очень полезно. aa

[Цитировать]

    puhpol
  • 2
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 888
  • Репутация:73

    [+] [-]
Каца врубился....
IFEX %TUnvi%,EXEC --wait %TUnvi%!TEAM SHEL %WinDir%\EXPLORER.EXE|LOGO|TEXT
Так?

Комментарий от puhpol


именно так....

[Цитировать]

    JOYsticK
  • 486
  • Стаж: 9 лет 1 месяц
  • Сообщений: 22
  • Репутация:-1

    [+] [-]
Тема еще не умерла? Заинтересовал интерпретатор, я бы не против помочь с переводом тоже.
В шапке последний вариант?

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
JOYsticK, сам интерпретатор обновляется постоянно. Крайние сборки есть на авторской байде. Либо можно использовать проверенные комплекты из 4-й странички темы.

[Цитировать]

    JOYsticK
  • 486
  • Стаж: 9 лет 1 месяц
  • Сообщений: 22
  • Репутация:-1

    [+] [-]
conty9, я имел ввиду хелп, если ли какой-то общий файл? может кто-то выложил на облако чтоб каждый мог редактировать перевод в онлайне, ну что-то такое. Чтоб видеть какая часть уже переведена, или уже все переведено и протестировано?

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
JOYsticK, никто ничего не переводил.

[Цитировать]

    JOYsticK
  • 486
  • Стаж: 9 лет 1 месяц
  • Сообщений: 22
  • Репутация:-1

    [+] [-]
27173никто ничего не переводил.
То есть это вы тут в этой теме просто свой мануал как бы сами пишете?

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
Декомпилятор для этого есть, кто в курсе?
Что то вообще ничего за PeCMD не нашел кроме пары китайских сайтов...

Страница 6 из 28


Показать сообщения:    

Текущее время: 26-Апр 10:57

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы