Показать полную графическую версию : [решено] Ошибка компиляции .bat в .exe
Bruce Wayne
31-03-2012, 16:09
Добрый день!
У меня вот такая проблема: создал я batch-файл, чистящий временные файлы, который работает сам по себе, но мне не нравится скорость его работы и то, что он видим при исполнении. Я хотел переделать его в exe-файл, пробовал через Bat2Exe, ExeScript и Quick Batch File Compiler: в первых двух случаях выдаётся неизвестная ошибка при выполнении, а в последнем - он почти ничего не удаляет, то есть почти не работает, процесс запускается на доли секунды и всё... Подскажите, пожалуйста, как можно сделать по другому, то есть как переделать в .exe? (Может, другие программы посоветуете) Я просто делал уже другой батник по работе с реестром через bat2exe - всё идеально работает, а тут... прямо и не знаю что такое. Заранее спасибо!
http://www.google.ru/search?q=bat+to+exe+converter&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest
Когда возникала необходимость, использовал его.
Bruce Wayne
31-03-2012, 16:31
Severny, спасибо за помощь, но не помогло( Та же история, что и в первых двух описанных выше случаях.
А лежат какие то дополнительные файлы в директории с батником, нужные для работы?
Просто екзешник запускает этот же батник, но во временной папке. В этом случае он их не увидит.
Можно глянуть в Process Explorer к примеру.
И батник неплохо бы лицезреть здесь.
Мы бы его потестили.
но мне не нравится скорость его работы »
Полагаете, после «компиляции» что-то изменится?
он видим при исполнении »
Что мешает запускать его без видимого окна консоли?
пробовал через Bat2Exe, ExeScript и Quick Batch File Compiler: »
Ничего, кроме дополнительных проблем и лишней головной боли, они не добавят.
Полагаете, после «компиляции» что-то изменится? »
Вот это да, действительно.
DesmondTruman
31-03-2012, 21:10
Bruce Wayne Созданный вами exe файл из батника, во время своего исполнения создаёт временный батник в папке %temp% (наподобие SFX-архива), и соответственно он и сам попадает под отчистку, поэтому и прерывается процесс.
н и сам попадает под отчистку »
Гм.. )))))))
Подскажите, пожалуйста, как можно сделать по другому, то есть как переделать в .exe? »
элементарно - Ватсон... http://ompldr.org/vZDdvZQ/33.gif
или отметить "запускать здесь" http://ompldr.org/vZDdvbA/35.gif и запуливать куда-нить
тогда, и "ТЕМП" можно чистить.
Bruce Wayne
01-04-2012, 01:42
Спасибо всем, но не помогает( Подскажите, пожалуйста, лучше вот что: как вызвать один скрипт из другого, скрыв его при этом? Я как-то находил это, а сейчас не могу... Там что-то вроде start xxx.exe /hide или start /slow xxx.cmd.
Например, так: Скрываем консольные окна (http://wiki.oszone.net/index.php/%D0%A1%D0%BA%D1%80%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C%D0%BD%D1 %8B%D0%B5_%D0%BE%D0%BA%D0%BD%D0%B0).
Можно и встроенными средствами, например, посредством WSH:
WScript.CreateObject("WScript.Shell").Run "E:\Песочница\0132\0001.cmd", 0, False
Bruce Wayne
01-04-2012, 11:57
Решил по-другому: я сделал вывод результатов всех действий в текстовый файл, нашёл, где происходит обрыв и скомпилировал два скрытых exe-шника, причём первый вызывает второго, чтобы в итоге были выполнены все действия. Всем спасибо за уделённое внимание и время! :good:
инспектор
20-05-2021, 18:21
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
инспектор чего интересно ..., не заблудились или утро только наступило?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.