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

    korsak7
  • 107
  • Стаж: 9 лет 3 месяца
  • Сообщений: 1082
  • Репутация:62

    [+] [-]
Чем больше глубина вложения переменной, том больше звёздочек ставим.)
что в нашем случае глубина вложения? это сколько раз она была ранее определена? типа:
ENVI _s1=засада
ENVI _s2=%_s1% фигня
ENVI** _s3=%_s2% война
Поскольку неверно написана, должно быть: WRIT X:\WNT.cmd,$+0,%_s% (символ "$" указывает, что мы пишем в файл содержимое переменной, а не текст).
слона то я в хелпе и не заметил aq
По PECMD*86 и запуску внешнего .exe x64
оказалось всё поведение норм. это я лопух. глаз замылился
Заходило в скрипт не %WA%=x64 а %WA%=64 ai
пасиб

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

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

    [+] [-]
korsak7, глубина вложения: обычная переменная %Var%, вложение первого уровня (одна звёздочка) - %Var%Number%% (т.е., у нас есть набор из переменных Var1, Var2, Var3, Var4). ENVI* получает вначале значение %Number%, например, 3. А потом - значение %Var3%. Такой вариант удобен в циклах.
Некоторые команды сразу правильно интерпретируют %Var%Number%% как значение Var%Number%, а некоторые могут интерпретировать как %Var% плюс текст Number плюс %%, что будет ошибкой.
Поэтому рекомендую для вложенных переменных предварительно развернуть значение в обычную переменную (ENVI со *-ками), а после её использовать.
Т.е., вместо MESS %Var%Number%%
TEAM ENVI* TempVar=%Var%Number%%|MESS %TempVar%-Кстати, о некоторых проблемах с обратной задачей. Мне понадобилось внести в реестр не значение переменной, а саму переменную (в User2Go хотелось, чтобы был красиво указан путь как %USERPROFILE%\Pictures, а не как C:\Users\User\Pictures). Как только я не изголялся, всё равно получался развёрнутый путь. Пришлось идти обходным путём.
ENVI &te=Pictures //указываем имя папки в профиле
ENVI PathD=*USERPROFILE*\%&te% //указываем путь, где в переменной %USERPROFILE% вместо % используем * (этот символ точно исключён в пути)
SED PathD=0,*,%,%PathD% //заменяем в переменной PathD * обратно на %
REGI ~HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\%&te%=%PathD% //вносим значение в реестр (именно как %USERPROFILE%\Pictures, поскольку REGI не обрабатывает вложенную переменную %USERPROFILE%).
Т.е., предварительной заменой символа мы получили эффект, что переменная не считается переменной (и не интерпретируется), а потом просто назад подменили символ * на %. При этом в качестве подменного символа можно использовать любой, не встречающийся в пути, и адекватно обрабатываемый заменой (команда SED).

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

    korsak7
  • 107
  • Стаж: 9 лет 3 месяца
  • Сообщений: 1082
  • Репутация:62

    [+] [-]
Классический костыль, где ж их нет aa

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

    dimo70
  • 17296
  • Стаж: 6 лет 3 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
conty9, по поводу HFS и EXT разделов на рабочей системе, оказывается если скрипт запустить, разделы становятся видимыми и можно с ним работать. После перезагрузки они становяться недоступными, что получается очень удобно.
ExtHFS.exe
aa

_________________
Подпись отключена за нарушение правил форума

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

    xnik
  • 19473
  • Стаж: 5 лет 5 месяцев
  • Сообщений: 411
  • Репутация:6

    [+] [-]
  • Откуда: СССР
разделы становятся видимыми и можно с ним работать. После перезагрузки они становяться недоступными, что получается очень удобно.
HFS + поддерживает?
HFS только для чтения?

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


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

    dimo70
  • 17296
  • Стаж: 6 лет 3 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
xnik, я проверял для ext4. есть возможность редактировать. HFS не проверял, но если чтение есть значит неплохо работает.

_________________
Подпись отключена за нарушение правил форума

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

    dimo70
  • 17296
  • Стаж: 6 лет 3 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Всем привет, у кого нибудь имеется PECMD скрипт для системных параметров компьютера (проц., рам, диски и прочее) Нужен для WinPE 8,1х64
Решил заного переделать сборку СФСТ. aa

_________________
Подпись отключена за нарушение правил форума

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

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

    [+] [-]
dimo70, выкладывал тут скрипт для получения технических характеристик компа.

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

    -TRM-
  • 19663
  • Стаж: 5 лет 4 месяца
  • Сообщений: 28
  • Репутация:0

    [+] [-]
Здравствуйте, помогите пожалуйста правильно перевести код для PEcmd bc
Я так понял, что с условиями работает команда IFEX, но толком в ней разобраться не могу. Мне нужно составить код в таком плане:
If FileExists(@WindowsDir & "\DriverPack\SDI_R.cmd") And FileExists(@WindowsDir & "\Key_BACKSPACE.SUF10") Then
  If FileExists(@WindowsDir & "\Key_F1.SUF10") = 1 Then
    RunWait(@WindowsDir & "\DriverPack\SDI_1.cmd")
  Else
    RunWait(@WindowsDir & "\DriverPack\SDI_2.cmd")
  EndIf
EndIf
;Начало условия
;Если присутствует файл %WinDir%\DriverPack\SDI_R.cmd и %WinDir%\Key_BACKSPACE.SUF10 тогда выполняем условие

If FileExists(@WindowsDir & "\DriverPack\SDI_R.cmd") And FileExists(@WindowsDir & "\Key_BACKSPACE.SUF10") Then
If FileExists(@WindowsDir & "\Key_F1.SUF10") = 1 Then
;Если присутствует файл %WinDir%\Key_F1.SUF10 тогда запускаем файл %WinDir%\DriverPack\SDI_1.cmd
RunWait(@WindowsDir & "\DriverPack\SDI_1.cmd")
Else
;Если отсутствует файл %WinDir%\Key_F1.SUF10 тогда запускаем файл %WinDir%\DriverPack\SDI_2.cmd
RunWait(@WindowsDir & "\DriverPack\SDI_2.cmd")
EndIf
EndIf ;Конец условия-Подскажите ещё в таком вопросе. На экран выводится несколько строк сообщений, они не затираются за счет в конце * (звездочки), но как мне просто заменить текст в уже выведденной строке? Если в конце со * (звездочкой)-тогда идет наложение текста, если без неё-то все ранее тексты убираются с экрана (логично).
В инструкции есть такое описание - Если Txt имеет значение NULL, текст в заданной области прямоугольника будет очищен. А примеров нигде нет...

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

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

    [+] [-]
IFEX $[ %WinDir%\DriverPack\SDI_R.cmd & %WinDir%\Key_BACKSPACE.SUF10 ],
{* IFEX %WinDir%\Key_F1.SUF10,EXEC -wait -hide SDI_1.cmd!EXEC -wait -hide SDI_2.cmd
}
// -wait -hide запустить с ожиданием, в скрытом режиме
Должно ещё так работать:
IFEX $[ %WinDir%\DriverPack\SDI_R.cmd & %WinDir%\Key_BACKSPACE.SUF10 & %WinDir%\Key_F1.SUF10],EXEC -wait -hide SDI_1.cmd
IFEX $[ %WinDir%\DriverPack\SDI_R.cmd & %WinDir%\Key_BACKSPACE.SUF10 & ! %WinDir%\Key_F1.SUF10],EXEC -wait -hide SDI_2.cmd
-С выводом текста командой TEXT всё сложно. Можешь глянуть в сборке 2к10, там более-менее повторяемый (но отнюдь не идеальный) вариант. Для вывода сообщений задействуется подпрограмма ITXT.

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

    -TRM-
  • 19663
  • Стаж: 5 лет 4 месяца
  • Сообщений: 28
  • Репутация:0

    [+] [-]
conty9, Спасибо за пример.
...
Можете подсказать какой шрифт используется при команде TEXT ... Ну или где в boot.wim можно посмотреть шрифт по умолчанию...

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

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

    [+] [-]
-TRM-, по-умолчанию PECMD использует шрифты, указанные в ресурсе "Строковая таблица".
1001 - это вроде для окон, 1002 - для сообщений (MESS), 1003, 1004 - не знаю.
Для TEXT, как и для многих других команд, можно указать размер:шрифт (после символа $)
TEXT Registering components……#0xFFDDDD L4 T720 R300 B768 $20:Arial
Следует учесть, что, если в системе указанный шрифт отсутствует, тогда РЕ "подставляет" его аналог согласно своим настройкам.

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

    -TRM-
  • 19663
  • Стаж: 5 лет 4 месяца
  • Сообщений: 28
  • Репутация:0

    [+] [-]
Ну, а можно получить название используемого шрифта и вывести его через TEXT?

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

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

    [+] [-]
-TRM-, прямого пути я не знаю. Можно прочитать содержимое ресурса "Строковая таблица", выбрать нужный раздел, прочитать какой шрифт используется по-умолчанию, проверить наличие этого шрифта в системе, если его нет - проверить его "заменители" в реестре. В общем, всё непросто.

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

    loban_ser
  • 17796
  • Стаж: 6 лет 1 месяц
  • Сообщений: 578
  • Репутация:24

    [+] [-]
А есть ли у pecmd команда для удаления ярлыка с панели задач?
Типа unpin
PS: переехал сюда

Страница 8 из 27


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

Текущее время: 29-Мар 00:27

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


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