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

    dem0n43
  • 556
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 65
  • Репутация:2

    [+] [-]
  • Откуда: ИзЗАДА
vovan19822, aa все заработало ay
Сначала тупил потом сделал так

Efix.cmd

echo off
cd /d "%~dp0"
:: Проверяем наличие ImDisk'а и если его нет, то устанавливаем
ECHO.
ECHO Проверяем наличие ImDisk и если его нет, то устанавливаем
if not exist %WINDIR%\System32\imdisk.exe call install.cmd
ECHO Монтируем ImDisk'ом созданный IMG на диск U:
start /w imdisk.exe -a -m U: -f MInstAll.iso -p "/fs:fat32 /q /y"
CLS
U:
start MInst.exe
exit
Дальше надо чтоб сканил процесс MInst.exe если его нет то размонтировал и удалял imdisk ap

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

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

    [+] [-]
  • Откуда: Ростов-на-Дону
dem0n43, так используй TASKKILL для убийства MInst.exe

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
dem0n43, vovan19822, Зачем его убивать то????
Запуск с ожиданием завершения процесса и размонтирование образа.
Но...Не факт что образ размонтируется.
И этому может быть куча причин.
Запущенное приложение из сборки софта, зарегистрированная dll, да много всего, что может помешать...
Но! Не все так плохо. Можно использовать замечательную утилиту от zxen
http://usbtor.ru/viewtopic.php?t=633
как то так:
@ echo off
cd /d "%~dp0"
if not exist %WINDIR%\System32\imdisk.exe call install.cmd
start /w imdisk.exe -a -m U: -f MInstAll.iso -p "/fs:fat32 /q /y"
U:\MInst.exe
dskunlock.exe -l=U: -s=1
imdisk -D -m U:
exit
Код не рабочий, нужно пути к файлам в порядок привести...
Опять же ... х64 в ней проверка будет неверной...

WinNTSetup_iso.cmd

@echo off
IF %1!==! (
echo.
echo  WinNTSetup ISO file support
echo.
echo  this batch will be executed to mount an ISO file
echo  right-click on the "source button" and select an ISO file
echo  path of the ISO will be saved inside %1
echo.
echo  sample for "ImDisk Virtual Disk Driver"
echo  http://www.ltr-data.se/opencode.html/#ImDisk
echo.
echo  silent install: imdiskinst -y
echo  mount command : imdisk -a -m #: -f %1
echo.
pause
goto :EOF
)
imdisk -a -m #: -f %1


Последний раз редактировалось: Joker-2013 (2016-09-24 22:34), всего редактировалось 2 раз(а)

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

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

    [+] [-]
  • Откуда: Ростов-на-Дону
Joker-2013, спасибо. Что-то я забыл про неё. И у ImDisk'а есть ключь принудительного размонтировая -d (маленькая дэ).

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

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
29095
ECHO Проверяем наличие ImDisk и если его нет, то устанавливаем
if not exist %WINDIR%\System32\imdisk.exe call install.cmd
Не корректно, imdisk.exe может и быть, а вот служба не запущена, лучше проверять саму службу.
@ echo off
cd /d "%~dp0"
:: Проверяем наличие ImDisk'а и если его нет, то устанавливаем
net start | find /i "imdisk" || call install.cmd
:: Монтируем ImDisk'ом созданный ISO на свободную букву
for /f "usebackq tokens=3,4 delims=: " %%a in (`imdisk.exe -a -m #: -f "MInstAll.iso" ^| find /i "Created device"`) do (
set unit=%%a
set drive=%%b
)
if "drive"=="" goto _err
start %drive%:\MInst.exe
:: Ждем завершения MInst.exe
:_1
ping -n 2 localhost > nul
tasklist /fi "imagename eq MInst.exe" | find /i " pid " || goto _2
goto _1
:_2
:: размонтирование и удаление imdisk
imdisk.exe -D -u %unit%
call uninstall.cmd
exit
:_err
echo Ошибка
pause
exit


Последний раз редактировалось: nikzzzz (2016-09-25 02:15), всего редактировалось 1 раз

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

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Поправил предыдущий пост, более корректное монтирование на первую свободную букву.
29102И у ImDisk'а есть ключь принудительного размонтировая -d (маленькая дэ).
По описанию -D (большая дэ)

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

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

    [+] [-]
  • Откуда: Ростов-на-Дону
nikzzzz, спасибо. Просто давно уже параметры не смотрел. Спасибо за коррекцию. Joker-2013, извиняюсь, за свою ошибку. У тебя все правильно.

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

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Linux подобный вариант, мне он больше всего нравится, "а зачем вообще нужны буквы дисков ?" ad
@echo off
cd /d "%~dp0"
:: Проверяем наличие ImDisk'а и если его нет, то устанавливаем
net start | find /i "imdisk" || call install.cmd
:: Монтируем ImDisk'ом созданный ISO в папку "%temp%\$MInst$"
1>nul 2>&1 rd /s /q "%temp%\$MInst$"
md "%temp%\$MInst$"
for /f "usebackq tokens=3 delims=: " %%a in (`imdisk.exe -a -m "%temp%\$MInst$" -f "MInstAll.iso" ^| find /i "Created device"`) do set unit=%%a
if "unit"=="" goto _err
start "MInst" /d "%temp%\$MInst$" "%temp%\$MInst$\MInst.exe"
:: Ждем завершения MInst.exe
:_1
:: Пауза в 5 сек
ping -n 6 localhost > nul
tasklist /fi "imagename eq MInst.exe" | find /i " pid " && goto _1
:: размонтирование и удаление imdisk
imdisk.exe -D -u %unit%
rd /s /q "%temp%\$MInst$"
call uninstall.cmd
exit
:_err
echo Ошибка
pause
exit
Код не проверялся, возможны ошибки.

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

    dem0n43
  • 556
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 65
  • Репутация:2

    [+] [-]
  • Откуда: ИзЗАДА
29117Linux подобный вариант
Работает ay
29100как то так:

работает

@ echo off
cd /d "%~dp0"
if not exist %WINDIR%\System32\imdisk.exe call install.cmd
start /w imdisk.exe -a -m U: -f MInstAll.iso -p "/fs:fat32 /q /y"
U:\MInst.exe
dskunlock.exe -l=U: -s=1
imdisk -D -m U:
exit
ay
Все запускал на 10х64 из папки MInstAll
А теперь вопрос можно ли запустиь файл без названия только по расширению то есть .iso

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
dem0n43, ну если imdisk.exe разрешит... *.iso

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

    dem0n43
  • 556
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 65
  • Репутация:2

    [+] [-]
  • Откуда: ИзЗАДА
29131*.iso
Не пашет ai
Joker-2013, какой параметр нужен в 7zSFX Constructor v1.9.8. чтоб извлечь файлы в ту папку из которой запущен exe ac
тест

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
%%s

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

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
29125А теперь вопрос можно ли запустиь файл без названия только по расширению то есть .iso
:: Поиск *.iso файлов, %filename% - полный путь к найденноиу файлу
for /f "delims=" %%a in ('2^>nul dir /b /a:-d *.iso') do set filename=%%~fa
if "%filename%"=="" goto _err

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

    dem0n43
  • 556
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 65
  • Репутация:2

    [+] [-]
  • Откуда: ИзЗАДА
nikzzzz, КАК применить

">

Efix.cmd

@ echo off
cd /d "%~dp0"
net start | find /i "imdisk" || call install.cmd
start /w imdisk.exe -a -m U: -f MInstAll.iso -p "/fs:fat32 /q /y"
U:\MInst.exe
dskunlock.exe -l=U: -s=1
imdisk -D -m U:
exit

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

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
dem0n43,
@echo off
cd /d "%~dp0"
net start | find /i "imdisk" || call install.cmd
:: Поиск *.iso файлов, %filename% - полный путь к найденноиу файлу
for /f "delims=" %%a in ('2^>nul dir /b /a:-d *.iso') do set filename=%%~fa
if "%filename%"=="" goto _err
imdisk.exe -a -m U: -f "%filename%"
U:\MInst.exe
dskunlock.exe -l=U: -s=1
imdisk -D -m U:
exit
:_err
echo Ошибка
pause
exit
И зачем форматировать .iso ? ( imdisk.exe -a -m U: -f MInstAll.iso -p "/fs:fat32 /q /y") ag ag ag

Страница 3 из 5


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

Текущее время: 21-Ноя 17:36

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


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