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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] Не закрывается окно после выполнения пакетного файла (http://forum.oszone.net/showthread.php?t=112427)

maslinaV 28-07-2008 10:53 862565

Не закрывается окно после выполнения пакетного файла
 
Не закрывается окно после выполнения пакетного файла , окно cmd так и остается открытым хотя команды выполнились

archicad.cmd

Код:

del "C:\Documents and Settings\Admin\Graphisoft\" ?.? /q

"C:\Program Files\Graphisoft\ArchiCAD 11\ArchiCAD.exe"
 EXIT


В чем ошибка

Petya V4sechkin 28-07-2008 12:40 862619

maslinaV, строку:
Код:

"C:\Program Files\Graphisoft\ArchiCAD 11\ArchiCAD.exe"
можно заменить на:
Код:

start /D"%ProgramFiles%\Graphisoft\ArchiCAD 11" ArchiCAD.exe

maslinaV 28-07-2008 13:51 862701

Это действительно работает , но почему такой синтаксис.

El Scorpio 29-07-2008 06:11 863275

Потому что в первом случае консоль ожидает завершения запущенной программы ArchiCAD, а во втором команда START запускает указанную программу и тут же завершает свою работу, в результате чего управление передаётся команде EXIT

Кстати, EXIT в конце ставить не надо. CMD-файлы закрывают консоль сами.

maslinaV 29-07-2008 15:30 863664

Из файла справки

Цитата:


Exit

Выход из текущего пакетного сценария или из программы Cmd.exe (командный интерпретатор) и возвращение в программу, запустившую Cmd.exe или в диспетчер программ.

Синтаксис
exit [/b] [КодВыхода]

/b

Выход из текущего пакетного сценария.

КодВыхода

Число.

/?

Отображение справки в командной строке.

Если /b используется вне пакетного сценария, то выход осуществляется из Cmd.exe.

Если используется /b, то Cmd.exe устанавливает ERRORLEVEL в указанный КодВыхода. При выходе из Cmd.exe, Cmd.exe устанавливает код процесса выхода вместе с параметром КодВыхода.

параметр для команды start

Цитата:

/d
Указывает каталог запуска.

NEK_o2 23-06-2010 11:51 1440012

А как наоборот оставить окно с каким-нить Echo, чтобы юзверь видел ошибку, или что операция завершена успешно?

В релейтеде предлагается Pause. Есть ли еще варианты?


Время: 04:57.

Время: 04:57.
© OSzone.net 2001-