Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Ошибка компиляции .bat в .exe (http://forum.oszone.net/showthread.php?t=231776)

Bruce Wayne 31-03-2012 16:09 1890746

Ошибка компиляции .bat в .exe
 
Добрый день!

У меня вот такая проблема: создал я batch-файл, чистящий временные файлы, который работает сам по себе, но мне не нравится скорость его работы и то, что он видим при исполнении. Я хотел переделать его в exe-файл, пробовал через Bat2Exe, ExeScript и Quick Batch File Compiler: в первых двух случаях выдаётся неизвестная ошибка при выполнении, а в последнем - он почти ничего не удаляет, то есть почти не работает, процесс запускается на доли секунды и всё... Подскажите, пожалуйста, как можно сделать по другому, то есть как переделать в .exe? (Может, другие программы посоветуете) Я просто делал уже другой батник по работе с реестром через bat2exe - всё идеально работает, а тут... прямо и не знаю что такое. Заранее спасибо!

Severny 31-03-2012 16:21 1890750

http://www.google.ru/search?q=bat+to...hannel=suggest
Когда возникала необходимость, использовал его.

Bruce Wayne 31-03-2012 16:31 1890759

Severny, спасибо за помощь, но не помогло( Та же история, что и в первых двух описанных выше случаях.

Severny 31-03-2012 16:41 1890766

А лежат какие то дополнительные файлы в директории с батником, нужные для работы?
Просто екзешник запускает этот же батник, но во временной папке. В этом случае он их не увидит.
Можно глянуть в Process Explorer к примеру.
И батник неплохо бы лицезреть здесь.
Мы бы его потестили.

Iska 31-03-2012 16:49 1890772

Цитата:

Цитата Bruce Wayne
но мне не нравится скорость его работы »

Полагаете, после «компиляции» что-то изменится?

Цитата:

Цитата Bruce Wayne
он видим при исполнении »

Что мешает запускать его без видимого окна консоли?

Цитата:

Цитата Bruce Wayne
пробовал через Bat2Exe, ExeScript и Quick Batch File Compiler: »

Ничего, кроме дополнительных проблем и лишней головной боли, они не добавят.

Severny 31-03-2012 17:20 1890799

Цитата:

Цитата Iska
Полагаете, после «компиляции» что-то изменится? »

Вот это да, действительно.

DesmondTruman 31-03-2012 21:10 1890961

Bruce Wayne Созданный вами exe файл из батника, во время своего исполнения создаёт временный батник в папке %temp% (наподобие SFX-архива), и соответственно он и сам попадает под отчистку, поэтому и прерывается процесс.

Severny 31-03-2012 22:12 1891004

Цитата:

Цитата DesmondTruman
н и сам попадает под отчистку »

Гм.. )))))))

mamont1 31-03-2012 22:13 1891006

Цитата:

Цитата Bruce Wayne
Подскажите, пожалуйста, как можно сделать по другому, то есть как переделать в .exe? »

элементарно - Ватсон... http://ompldr.org/vZDdvZQ/33.gif
или отметить "запускать здесь" http://ompldr.org/vZDdvbA/35.gif и запуливать куда-нить
тогда, и "ТЕМП" можно чистить.

Bruce Wayne 01-04-2012 01:42 1891102

Спасибо всем, но не помогает( Подскажите, пожалуйста, лучше вот что: как вызвать один скрипт из другого, скрыв его при этом? Я как-то находил это, а сейчас не могу... Там что-то вроде start xxx.exe /hide или start /slow xxx.cmd.

Iska 01-04-2012 01:52 1891110

Например, так: Скрываем консольные окна.

Можно и встроенными средствами, например, посредством WSH:
Код:

WScript.CreateObject("WScript.Shell").Run "E:\Песочница\0132\0001.cmd", 0, False

Bruce Wayne 01-04-2012 11:57 1891201

Решил по-другому: я сделал вывод результатов всех действий в текстовый файл, нашёл, где происходит обрыв и скомпилировал два скрытых exe-шника, причём первый вызывает второго, чтобы в итоге были выполнены все действия. Всем спасибо за уделённое внимание и время! :good:

инспектор 20-05-2021 18:21 2958542

pause
Код:

@echo off
chcp 866
set NLM=^


set NL=^^^%NLM%%NLM%^%NLM%%NLM%
setlocal
::bcdedit
for /f "tokens=1-10 delims= " %%a in (' bcdedit ^| findstr ".*" ') do (
        if "%%a" == "Диспетчер" if "%%b" == "загрузки" echo %NL%Диспетчер загрузки Windows%NL%-------------------
        if "%%a" == "идентификатор" echo идентификатор: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "device" echo device= %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "path" echo path: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "description" echo description: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "locale" echo locale: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "inherit" echo inherit: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "default" echo default: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "resumeobject" echo resumeobject: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "toolsdisplayorder" echo toolsdisplayorder: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "timeout" echo timeout: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "Загрузка" if "%%b" == "Windows" echo %NL%Загрузка Windows%NL%-------------------
        if "%%a" == "recoveryenabled" echo recoveryenabled: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "isolatedcontext" echo isolatedcontext: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "allowedinmemorysettings" echo allowedinmemorysettings: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "osdevice" echo osdevice: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "systemroot" echo systemroot: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "nx" echo nx: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "bootmenupolicy" echo bootmenupolicy: %%b %%c %%d %%e %%f %%g %%h %%i %%j
        if "%%a" == "hypervisorlaunchtype" echo hypervisorlaunchtype: %%b %%c %%d %%e %%f %%g %%h %%i %%j
)
pause


alpap 20-05-2021 21:09 2958555

инспектор чего интересно ..., не заблудились или утро только наступило?


Время: 00:39.

Время: 00:39.
© OSzone.net 2001-