View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Dec 01, 2016 15:52 Post subject: |
|
|
HA3APET wrote: | Не могу осилить |
Code: | ProcessExecGetOutput PING 'cmd /c ping ya.ru -n 1|find /c "TTL"'
If %PING% = 1 Then |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Sat Dec 03, 2016 22:40 Post subject: |
|
|
Спасибо, работает. А можно вариант без CMD?
А то с UNC путями проблемы. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Dec 04, 2016 00:58 Post subject: |
|
|
Code: | ProcessExecGetOutput CMD 'ping ya.ru -n 1'
StrPos CMD '%CMD%' TTL
If %CMD% > 0 Then
SetEnv IP 213.180.204.3
Else
SetEnv IP 217.69.139.200 |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Kiril__777
Joined: 09 Sep 2016 Posts: 15
|
(Separately) Posted: Thu Dec 14, 2017 18:24 Post subject: |
|
|
Подскажите пожалуйста. Есть Win 10 х64 и ТС 8.52а
Как задать переменную равную разрядности ОС?
раскомментировал это
Code: | # LoadLibrary Plugins\Autorun_Process.dll
# ProcessExecGetOutput OSVER %COMSPEC% '/c ver'
# SetEnv /EV COMMANDER_OSVER "%OSVER%" |
но переменная %OSVER% не задалась.
Тогда прописал это
Code: | LoadLibrary Plugins\Autorun_Sysinfo.dll
SetEnv /EV OSVER %SYSINFO_OSARCH% |
Но опять переменная %SYSINFO_OSARCH% не стала равняться разрядности ОС. НУ по крайней мере в help_ru.chm не понятно написано как это сделать.
Как все таки мне это сделать?
Спасибо
Получилось так
Quote: | LoadLibrary Plugins\Autorun_Sysinfo.dll
SetEnv /EV SYSINFO_OSARCH %SYSINFO_OSARCH% |
|
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10268 Location: Россия, Саратов
|
(Separately) Posted: Thu Dec 14, 2017 19:27 Post subject: |
|
|
Kiril__777
Версия системы и её битность — это вообще-то не одно и то же, правда? Впрочем, кажется, всё уже ясно. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Jan 14, 2018 01:50 Post subject: |
|
|
У меня в autorun.cfg прописано такое.
Code: |
SetEnv 3264dir %SYSINFO_OSARCH%
If %SYSINFO_OSARCH% = 64 Then
SetEnv 3264file %SYSINFO_OSARCH%
Else
SetEnv 3264file
If %SYSINFO_OSARCH% = 64 Then
SetEnv 64dir %SYSINFO_OSARCH%\
Else
SetEnv 64dir
|
Но всё ровно, это как то не универсально. Слишком много переменных.
Притом, есть случаи когда встречаются папки х32 и х64. Или х86 и х64.
Нельзя ли это привести более к универсальному методу, используя одну или две переменных. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 14, 2018 02:08 Post subject: |
|
|
Iori
Что понимается под универсальностью?
Если у тебя в части наличия папок и окончаний имён в разных случаях разные условия, то логично, что в каждом случае нужно использовать подходящие переменные. А если во всех случаях указана битность, то достаточно и первой строки. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Jan 14, 2018 02:27 Post subject: |
|
|
Flasher wrote: | Что понимается под универсальностью? |
Имеется ввиду, одна или две переменные на все случаи. Чем меньше переменных, тем лучше.
Flasher wrote: | А если во всех случаях указана битность, то достаточно и первой строки. |
Так в том то и дело, что не везде указана битность.
Например в одной папке workshop.ехе и workshopХ64.ехе.
В другой папке, Tracer\x86\tracer.exe и Tracer\x64\tracer.exe
Менять название папок и файлов дело не всегда хорошее. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 14, 2018 03:59 Post subject: |
|
|
Iori
Переменная среды не в состоянии предугадать разные условия. Тут не может быть автоматизации по определению. Подставляется ровно то, что задано. Это же не скрипт, который я приводил. Тут либо несколько переменных либо переименование. А что касается x32/x64, то заведомо написать 'x' в базовое имя — не проблема. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Jan 14, 2018 04:28 Post subject: |
|
|
Flasher
Я тебя понимаю.
Существует ли решение с переменой, если у файла не указан 32 или 64 в имени файла? С папками это ладно. Но некоторые программы не будут работать, если изменять имя файла.
Скажем file.exe и file64.exe
Если нет, то далее самый подходящий вариант.
Code: |
If %SYSINFO_OSARCH% = 32 Then
SetEnv /EV 7zip %COMMANDER_PATH%\Packers\file.exe
Else
SetEnv /EV 7zip %COMMANDER_PATH%\Packers\64\file64.exe
EndIf
|
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 14, 2018 04:35 Post subject: |
|
|
Iori
Так а чем тебе %3264file% не решение?
P.S.: Название для переменной, конечно, своеобразное. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Jan 14, 2018 05:12 Post subject: |
|
|
Flasher wrote: | Так а чем тебе %3264file% не решение? |
А как мне это в путь приписать? Уму не приложу.
Так что-ли?
%COMMANDER_PATH%\Packers\%64dir%\file%3264file%.exe
Что делать когда папка одна, и в ней file.exe и file64.exe или file86.exe и file64.exe
Quote: | P.S.: Название для переменной, конечно, своеобразное. |
От OSARCH, OSARCH2, OSARCH3 и так далее, мне не станет легче.
Надо, чтобы переменная несла смысл. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 14, 2018 05:19 Post subject: |
|
|
Ну, ты с логикой дружишь? Если папка одна, зачем тебе %64dir%\ в пути? Я вроде под спойлером понятно написал.
Iori wrote: | или file86.exe и file64.exe | Для этого случая потребуется ещё одна переменная.
Code: | If %SYSINFO_OSARCH% = 64 Then
SetEnv ArchOS 64
Else
SetEnv ArchOS 86 |
Iori wrote: | Надо, чтобы переменная несла смысл. | OSARCH и несёт целевой смысл. А вот 3264 нет, т. к. в одном случае этого нет. И file подразумевает разрядность файла, а не оси.
Не нравится нумерация, есть другие варианты: ARCH, ArchOS. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Jan 14, 2018 05:44 Post subject: |
|
|
Flasher wrote: | Ну, ты с логикой дружишь? |
Зависит от задачи.
Flasher wrote: | Если папка одна, зачем тебе %64dir%\ в пути? |
Пример был для:
\Packers\file.exe
\Packers\64\file64.exe
Как ты видишь, папка не общая.
Iori wrote: | Что делать когда папка одна, и в ней file.exe и file64.exe или file86.exe и file64.exe |
А это, уже другой вопрос был. |
|
Back to top |
|
|
|