[Quote]

    dem0n43
  • 556
  • Longevity: 9 years 9 months
  • Posts: 65
  • REPUTATION:2

    [+] [-]
  • Location: ИзЗАДА
conty9,
Папка SDI_Update файлы SDI_R423.exe SDI_x64_R423.exe
меняются версии после SDI_R как задать переменную на запуск SDI_R???.exe

[Quote]

    Guest
  • REPUTATION:0

    [+] [-]
Опять пригодился Dir. Для произвольного количества символов после sdi_r
for /f "tokens=1" %%a in ('dir /b sdi_r*.exe') do start %%a
или - для 3-х символов после sdi_r
for /f "tokens=1" %%a in ('dir /b sdi_r???.exe') do start %%a
или просто задать переменную
for /f "tokens=1" %%a in ('dir /b sdi_r???.exe') do set SDIname=%%a

[Quote]

    korsak7
  • 107
  • Longevity: 10 years
  • Posts: 1063
  • REPUTATION:62

    [+] [-]
17558conty9,
Папка SDI_Update файлы SDI_R423.exe SDI_x64_R423.exe
меняются версии после SDI_R как задать переменную на запуск SDI_R???.exe
в авторском SDI_auto.bat уже так и сделано как conty9 написал
http://nnm-club.me/forum/viewtopic.php?t=936087

[Quote]

    SV-2k10
  • 437
  • Longevity: 9 years
  • Posts: 267
  • REPUTATION:21

    [+] [-]
Приветствую всех … ребят, у меня при запуске батника не закрывается консольное окно прописал так …
@echo off
exit
Вреде гдето уже спрашивали,… посоветуйте что прописать – спасибо !

[Quote]

    korsak7
  • 107
  • Longevity: 10 years
  • Posts: 1063
  • REPUTATION:62

    [+] [-]
какой строкой запускается батник?

[Quote]

    SV-2k10
  • 437
  • Longevity: 9 years
  • Posts: 267
  • REPUTATION:21

    [+] [-]
korsak7, Привет, этой и запускается.
@echo off
@echo off
start /b /w CCleaner.exe /AUTO
start /b /w Defraggler.exe
exit
Сами команды отрабатываю нормально, вторая программа запускается после отработки первой, и все отрабатывает хорошо – но вот окно консоли не закрывается …

[Quote]

    Guest
  • REPUTATION:0

    [+] [-]
SV-2k10, а как ты запускаешь бантик? Можно - cmd.exe /c bantic.cmd (закрыть окно после отработки), а можно cmd.exe /k bantic.cmd (не закрывать).

[Quote]

    SV-2k10
  • 437
  • Longevity: 9 years
  • Posts: 267
  • REPUTATION:21

    [+] [-]
korsak7, conty9, Спасибо ! всего то надо было убрать лишние пустые строчки – без вас бы не разобрался. ah
Раз я уже спросил, то объясни и это (cmd.exe /c bantic.cmd) на сколько я понял, это для запуска на прямую из ком строки, или из SFX архива ?


Last edited by SV-2k10 on 2016-01-30 12:10; edited 1 time in total

[Quote]

    Guest
  • REPUTATION:0

    [+] [-]
Пустые строчки - не при делах (они игнорируются). По поводу cmd: это интерпретатор комстроки. Чтобы посмотреть его команды, набираем: cmd /?. Запускать бантики через него - порой необходимость (не все программы "знают", что бантик запускается при его помощи - некоторые могут открыть бантик в блокноте, как обычный текст).
По поводу SFX: для универсального использования и под х86, и под х64, лучше использовать такую прописку запуска (нужен относительно новый SFX-модуль):
RunProgram="x86:hidcon:cmd /c start /b /w script.cmd"
RunProgram="x64:hidcon:cmd /c start /b /w script.cmd"
вместо (казалось бы, вполне логичного варианта)
RunProgram="hidcon:cmd /c start /b /w script.cmd"
Разница в том, что x64:hidcon:cmd - запустит х64-версию cmd. И, соответственно, получит нормальный доступ к папке System32. А вот hidcon:cmd под х64 запустит х86-версию cmd, и будет "видеть" только папку SysWOW64.
Попутно еще уточню, что даже из х86-версии cmd можно, в принципе, запустить что-то из папки System32 под х64. Но для этого нужно указывать путь к ней иначе:
cmd /c start %WinDir%\System32\notepad.exe - запустит 32-ю версию notepad.exe (т.е., под х86 - версию из папки System32, а для х64 - версию из папки SysWOW64... и если в последней notepad.exe нет - получим ошибку).
А вот такой вариант:
cmd /c start %WinDir%\SysNative\notepad.exe - под х64 запустит 64-ю версию notepad.exe (из папки System32)... но под х86 даст ошибку (папка SysNative отсутствует).
Простенький универсальный вариант:
if exist %WinDir%\SysWOW64 (set sys=SysNative) Else (set sys=System32)
cmd /c start %WinDir%\%sys%\notepad.exe


Last edited by Guest on 2016-01-30 12:27; edited 3 times in total

[Quote]

    KopBuH91
  • 102
  • Longevity: 10 years
  • Posts: 382
  • REPUTATION:55

    [+] [-]
  • Location: Ташкент
Выкладываю здесь по просьбе участника форума:

Определение параметров загрузки в WinPE (с помощью сценария командной строки) (можно в startnet.cmd)

:: Определение устройства загрузки (диск/сеть)
FOR /F "tokens=3* delims=( " %%i in ('reg query HKLM\System\CurrentControlSet\Control /v PEBootType') DO SET PEBootType=%%i
IF "%PEBootType%" == "Ramdisk:SourceIdentified" SET WINPEDEVICE=DISK
IF "%PEBootType%" == "Ramdisk:SourceUnidentified" SET WINPEDEVICE=WINRE
IF "%PEBootType%" == "Ramdisk:OpticalDrive" SET WINPEDEVICE=OPTICAL
IF "%PEBootType%" == "Remote" SET WINPEDEVICE=REMOTE
:: Определение типа загрузки (BIOS/UEFI/PXE)
IF "%PEBootType%" == "Ramdisk:SourceIdentified" (FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') DO SET PEFirmwareType=%%i)
IF "%PEBootType%" == "Ramdisk:SourceUnidentified" (FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') DO SET PEFirmwareType=%%i)
IF "%PEBootType%" == "Ramdisk:OpticalDrive" (FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') DO SET PEFirmwareType=%%i)
IF "%PEFirmwareType%" == "0x2" SET WINPEMODE=UEFI
IF "%PEFirmwareType%" == "0x1" SET WINPEMODE=BIOS
IF "%PEBootType%" == "Remote" SET WINPEMODE=PXE
:: Определение IP адреса PXE сервера, с которого был загружен boot.wim (если загрузчик bootmgr от Microsoft)
IF "%PEBootType%" == "Remote" (FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\System\CurrentControlSet\Control /v PEBootServerAddr') DO SET PXEServerIP=%%i)
IF "%PEBootType%" == "Remote" (FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\System\CurrentControlSet\Control /v PEBootServerName') DO SET PXEServer=%%i)
:: Определение производителя и модели материнской платы
FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\HARDWARE\DESCRIPTION\System\BIOS /v BaseBoardManufacturer') DO (SET BaseBoardManufacturer=%%i)
FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\HARDWARE\DESCRIPTION\System\BIOS /v BaseBoardProduct') DO (SET BaseBoardProduct=%%i)
FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\SYSTEM\CurrentControlSet\Control\SystemInformation /v SystemManufacturer') DO (SET SystemManufacturer=%%i)
FOR /F "tokens=3* delims= " %%i in ('reg query HKLM\SYSTEM\CurrentControlSet\Control\SystemInformation /v SystemProductName') DO (SET SystemProductName=%%i %%j)
:: Запись значений производителя и модели материнской платы в окно свойств системы
REG add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /t REG_SZ /v Manufacturer /d "%SystemManufacturer% (%BaseBoardManufacturer%)" /f
REG add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /t REG_SZ /v Model /d "%BaseBoardProduct% / %SystemProductName% (%WINPEARCH% bit / %WINPEMODE%)" /f
:: Поиск загрузочного носителя (папку-маркер "AdminPE" заменить на свою)
SET PEBootRamdiskSourceDrive=
FOR %%d IN (C D E F G H I J K L M N O P Q R S T U V W Y X Z) DO IF EXIST %%d:\AdminPE SET SourceDrive=%%d:
FOR /F "tokens=1-3 delims== " %%a in ('reg.exe query "HKLM\SYSTEM\CurrentControlSet\Control" /v "PEBootRamdiskSourceDrive" 2^>nul') do (if %%a.==PEBootRamdiskSourceDrive. @set SourceDrive=%%~dc)
IF "%WINPEDEVICE%" == "REMOTE" SET SourceDrive=X:
:: Запись локальных переменных в глобальные переменные среды
SETX SOURCEDRIVE "%SOURCEDRIVE%"
SETX WINPEDEVICE "%WINPEDEVICE%"
SETX WINPEMODE "%WINPEMODE%"
SETX PXESERVER "%PXEServer%"
SETX PXESERVERIP "%PXEServerIP%"
SETX BaseBoardManufacturer "%BaseBoardManufacturer%"
SETX BaseBoardProduct "%BaseBoardProduct%"
SETX SystemManufacturer "%SystemManufacturer%"
SETX SystemProductName "%SystemProductName%"

[Quote]

    mlevon
  • 1606
  • Longevity: 9 years 3 months
  • Posts: 65
  • REPUTATION:0

    [+] [-]
В скрипте
$OEM$\$$\Setup\SCRIPTS\SetupComplete.cmd записи идут start /wait %SystemDrive%\Install\7z32.msi /q такого характера
пользуясь разделением на разрядность системы,
Скрипт запускающий программу в зависимости от разрядности системы.
Должен лежать рядом с программой.
Код:
@echo off
if exist %WinDir%\SysWOW64 (start WinInstaller64.exe) Else (start WinInstaller32.exe)
exit
if exist %WinDir%\SysWOW64 (start WinInstaller64.exe) Else (start WinInstaller32.exe)
Если в системной папке найдена папка SysWOW64 будет запущена программа WinInstaller64.exe, в противном случае WinInstaller32.exe.
Kак правильнее будет, написать в отдельный батник скрипт на разделение разрядности и из setupcomplete.cmd вызывать разделительный батник? Или сразу проверку в setupcomplete.cmd писать проверку на разделение с запуском нужной разрядности

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
mlevon
Определение разрядности по SysWOW64 не совсем корректно, более правильно так:
BAT/CMD для запуска версии программы 32-бит (х86) или 64-бит (х64) - проверяет разрядность ОС и в зависимости от этого запускает ту или иную версию программы
set wininst=WinInstaller64.exe
if /i %PROCESSOR_ARCHITECTURE%==x86 if not defined PROCESSOR_ARCHITEW6432 set wininst=WinInstaller32.exe
start %wininst%


Last edited by nikzzzz on 2017-03-27 12:29; edited 1 time in total

[Quote]

    mlevon
  • 1606
  • Longevity: 9 years 3 months
  • Posts: 65
  • REPUTATION:0

    [+] [-]
39631mlevon
Определение разрядности по SysWOW64 не совсем корректно, более правильно так
if /i %PROCESSOR_ARCHITECTURE%==x86 if not defined PROCESSOR_ARCHITEW6432 (start WinInstaller32.exe) else (start WinInstaller64.exe)
Ок. Спасибо. И все таки, вернувшись к вопросу. Это писать в отдельном батнике, и его вызывать? Или в мейн батнике сразу?

[Quote]

    Joker-2013
  • 1039
  • Longevity: 9 years 6 months
  • Posts: 2053
  • REPUTATION:120

    [+] [-]
  • Location: из прошлого
mlevon, писать, где требуется запуск WinInstallerxx.exe...

[Quote]

    nikzzzz
  • 215
  • Longevity: 9 years
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
Поправил свое сообщение, была ошибка.

Page 2 of 8


Display posts:    

Current time is: 14-Jan 05:59

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum