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

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

dima05605 20-12-2012 18:48 2049874

Не запускается ехе
 
Доброго времени суток, снова нубо-скриптер у клавиатуры. В коде не запускается ехе, точнее запускается, но сразу же выключается.

@echo off
set "wmic=wmic process call create "C:\samp-server.exe" | findstr "ProcessId""
for /f "tokens=2 delims==;" %%i in (' "%wmic%" ') do set "pid=%%i"
echo %pid%
pause

На экран выводится PID, все вроде бы хорошо, но samp-server.exe просто мигнул на экране и все. Если вручную запускать, то работает отлично. Точно так же не хочет работать и на VBS скрипте. Заранее спасибо!

Iska 20-12-2012 19:09 2049884

dima05605, запускайте «samp-server.exe», затем смотрите, что указано в его выводе. Читайте «server_log.txt».

dima05605 20-12-2012 20:34 2049932

Цитата:

Цитата Iska
запускайте «samp-server.exe», затем смотрите, что указано в его выводе. Читайте «server_log.txt». »

server_log.txt вообще не создается, хотя должен. И кстати так почти со всеми ехе. Мелькнул и все.

Iska 21-12-2012 07:50 2050172

dima05605, откуда брали «samp-server.exe»?

dima05605 21-12-2012 18:48 2050518

С google конечно же :) На samp-server.exe можно не смотреть. У меня большинство ехе не работают как надо. Просто мелькают на экране и все

dima05605 21-12-2012 23:02 2050664



Думаю тут комментарии излишни. Везде показывает по-разному

Iska 22-12-2012 04:50 2050762

dima05605, по Вашему мутному скриншоту сложно что-то разобрать.

Цитата:

С google конечно же
А я брал отсюда: Windows Server - SA-MP Wiki.

dima05605 22-12-2012 23:11 2051254

Что тут разбирать? Объясню. В скрипте пишет что PID 892, а в командной строке пишет, что 3076.

Iska 23-12-2012 07:47 2051411

У меня — нет.

dima05605 23-12-2012 19:39 2051798

Все правильно у вас? Показывает правильный PID? А почему тогда у меня сам закрывается ехе? Кстати, а можно ли как-то запустить этот ехе внутри bat? Например как я на паскале делал - командная строка внутри проекта на паскале, так и запускать exe внутри батника.

Iska 23-12-2012 21:32 2051875

Цитата:

Цитата dima05605
А почему… »

dima05605, начните с того, что возьмите правильный «samp-server.exe»: Windows Server - SA-MP Wiki.

dima05605 23-12-2012 22:09 2051907

Взял, скачал, распаковал, конфиг настроил. Вручную ехе запускается, создает лог файл и не пропадает, при запуске батником, пропадает ехе и никаких логов не создалось. Проверял на двух компах с WinXP и Win7

Iska 23-12-2012 23:01 2051974

dima05605, он не может найти потребные файлы. Добавьте «Working Directory»:
Код:

set "wmic=wmic process call create "<Путь>\samp-server.exe", "<Путь>" | findstr "ProcessId""

dima05605 23-12-2012 23:27 2052000

Не хочет работать :( Уже не знаю что делать...

Может на виртуальной машине попробовать сделать?

Iska 24-12-2012 00:45 2052065

Строку:
Код:

rcon_password changeme
в «server.cfg» поправили?


У меня никаких проблем нет:

читать дальше »


Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims==;" %%i in (
        `wmic.exe Process Call Create "E:\Песочница\0217\samp-server.exe"^, "E:\Песочница\0217" ^| findstr.exe "ProcessId"`
) do set sPID=%%i

if defined sPID echo [%sPID%]

endlocal
exit /b 0


dima05605 24-12-2012 23:56 2052860

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims==;" %%i in (
`wmic.exe Process Call Create "C:\SAMP\samp-server.exe"^, "C:\SAMP\samp-server.exe" ^| findstr.exe "ProcessId"`
) do set sPID=%%i

if defined sPID echo [%sPID%]

endlocal
exit /b 0

Не работает ни у друга, ни на моем компе с XP, ни на семерке почему-то...

По вашим скриншотам четко видно, что все ок. :(

Iska 25-12-2012 01:22 2052884

И не должно работать. Уберите лишнее:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims==;" %%i in (
    `wmic.exe Process Call Create "C:\SAMP\samp-server.exe"^, "C:\SAMP\samp-server.exe" ^| findstr.exe "ProcessId"`
) do set sPID=%%i

if defined sPID echo [%sPID%]

endlocal
exit /b 0


dima05605 25-12-2012 19:36 2053315

РАБОТАЕТ! Я даже не знаю как отблагодарить вас! :) Спасибо огромное, вы буквально решили судьбу моего хостинга :)

dima05605 25-12-2012 23:53 2053426

Кстати, не хочет работать с BAT файлами. С ехе все хорошо :)

Iska 26-12-2012 02:39 2053508

Цитата:

Цитата dima05605
РАБОТАЕТ! »

Гут.

Цитата:

Цитата dima05605
Кстати, не хочет работать с BAT файлами. С ехе все хорошо »

«Обоняние мы вылечили, а теперь будем лечить слух» ;).

Давайте теперь вернёмся к пакетным файлам. Описывайте, как будто в первый раз — что, где и как.

dima05605 26-12-2012 18:58 2053973

Юзаю тот же код, что и заработал с ехе, но bat файлы не запускаются. Это как в списке обновлений: "исправлены старые баги, добавлены новые." :)

Iska 26-12-2012 21:33 2054070

Цитата:

Цитата Iska
Описывайте, как будто в первый раз — что, где и как. »

Конкретный пакетный файл, расположенный в конкретном месте… Где это всё?

dima05605 27-12-2012 00:00 2054149

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims==;" %%i in (
`wmic.exe Process Call Create "C:\file.bat"^, "C:\" ^| findstr.exe "ProcessId"`
) do set sPID=%%i

if defined sPID echo [%sPID%]

endlocal
ping -n 2 127.0.0.1 > NUL
pause

Батник:
@echo off
echo TEST MESSAGE
pause

Iska 27-12-2012 22:43 2054828

dima05605, у меня работает. PID отображает. Корректный. Для чистоты я поправил разбор — был лишний пробел.

E:\Песочница\0220\0001.cmd:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims=        =; " %%i in (
        `wmic.exe Process Call Create "E:\Песочница\0220\0002.cmd"^, "E:\Песочница\0220" ^| findstr.exe "ProcessId"`
) do set sPID=%%i

if defined sPID echo [%sPID%]

endlocal
exit /b 0

E:\Песочница\0220\0002.cmd:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

echo TEST MESSAGE
pause

endlocal
exit /b 0


dima05605 30-12-2012 13:21 2056164

Спасибо, все работает. Правда почему-то в C:\ не хочет работать, но в любом другом месте работает на УРА!

Iska 31-12-2012 03:47 2056488

Цитата:

Цитата dima05605
Правда почему-то в C:\ не хочет работать, но в любом другом месте работает на УРА! »

Я не представляю, зачем может понадобиться наличие пакетного файла в корневом каталоге системного раздела.

Вы можете использовать обходной путь, добавив в путь ссылку каталога на самого себя в виде точки:
Код:

        `wmic.exe Process Call Create "C:\0002.cmd"^, "C:\." ^| findstr.exe "ProcessId"`


Время: 10:15.

Время: 10:15.
© OSzone.net 2001-