[XP] Batch auto. afsluiten*

Pagina: 1
Acties:
  • 328 views sinds 30-01-2008
  • Reageer

  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

Topicstarter
Ik weet niet of ik in het goede gedeelte zit hier, maar aangezien dos in XP aan windows is gerelateerd post ik het hier.

Ik ben iig geen held in batch filetjes maken, maar het is me wel gelukt om op een lokale machine een batch van de server te starten die voor mij opeenvolgens apache start (niet als service, maar in een dos-box) en vervolgens 5 sec wacht, waarna hij explorer opent, en automatisch naar de localhost browsed!

A-technische users kunnen ze dus snel even een databaseje raadplegen die op de server staat, via browsing naar de lokalhost.

Maar nu wil ik dus dat zodra ze de browser sluiten, ook die apache-dos-box gekilled wordt. Is dit mogelijk onder XP en eventueel NT4??

euh...ja


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

Als laatste commando CLS geven in je batch. Raar maar waar :)

/edit:
Ummm... Of anders CALL AndereBatch.cmd, en dan in AndereBatch.cmd je Explorer openen, eindigen met CLS en dan je originele batch ook eindigen met CLS. Dan wacht de originele batchjob tot de andere klaar is.

[ Voor 65% gewijzigd door CmdrKeen op 19-08-2004 12:25 ]

Bloed, zweet & koffie


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 05-05 18:54

TeeDee

CQB 241

CLS? Zou je dat uit kunnen leggen? Ik dacht altijd exit :?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Krypt
  • Registratie: April 2000
  • Laatst online: 05-05 17:38
Post eens je batchfile (verwijder wel evt passwords die erin staan; als ze erin staan tenminste)...

Het ligt er nl. aan hoe je internet explorer opstart via de batchfile..
Als je internet explorer start met "start /w iexplore.exe" dan wacht het batchbestand totdat de explorer afgesloten is en loop vervolgens verder; dan kun je op dezelfde manier dat je apache start, ook apache weer afsluiten. desnoods met pskill

[ Voor 5% gewijzigd door Krypt op 19-08-2004 12:25 ]

Pvouput live


  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

Topicstarter
een clear screen geven... dat had ik ook al geprobeerd, of een exit... maar dat werkt dus niet.

Ik moet erbij zeggen dat die dos-box waar apache in "runned" dit aangeeft ->
Apache/1.3.31 (Win32) PHP/4.3.8 running...

en een cursor die knippert!

edit:
batch file:
code:
1
2
3
4
5
6
7
8
@ECHO OFF
start "Apache Service" /D"K:\data-base\WEB\apache\"/MIN apache.exe
echo.
echo wacht ff 4 sec.
k:
cd "K:\data-base\WEB\apache\"
wait.exe 4
start /D"C:\Program Files\Internet Explorer\" IEXPLORE.EXE http://localhost

[ Voor 37% gewijzigd door Rfce op 19-08-2004 12:29 ]

euh...ja


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

EXIT beëindigt het script maar sluit niet (noodzakelijkerwijs) het window. CLS op 't eind wel, al is het er niet voor bedoeld.

Vaak gaat het automagisch maar als 't dat niet gaat dan wil CLS nogal eens helpen. Volgens mij is die tip afkomstig van Rob van der Woude (http://www.robvanderwoude.com/) of Eric P (http://www.ericphelps.com/).

[ Voor 3% gewijzigd door CmdrKeen op 19-08-2004 12:34 ]

Bloed, zweet & koffie


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

Rfce schreef op 19 augustus 2004 @ 12:27:
een clear screen geven... dat had ik ook al geprobeerd, of een exit... maar dat werkt dus niet.

Ik moet erbij zeggen dat die dos-box waar apache in "runned" dit aangeeft ->
Apache/1.3.31 (Win32) PHP/4.3.8 running...

en een cursor die knippert!
Dan dus de batch aanroepen (CALL) vanuit een andere batch en *die* achteraf met CLS sluiten.

Bloed, zweet & koffie


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

ff opgezocht:
http://www.ericphelps.com/batch/samples/closewindow.txt
FAQ: How do I get my batch file to close it's DOS
window after it finishes?

Answer: Clear the screen! Just add the following
two lines to the end of your batch file:
@echo off
cls

It actually makes sense if you think about it. If
there is something on the screen, DOS will hold
the window open so you can see the results. But if
there is NOTHING on the screen, there is no reason
to keep the window open!

---- Now, before you go and tell me I'm wrong ----

The "official" way (everybody keeps reminding me)
to close a DOS session is to use the EXIT command.
But this just closes the DOS session, not
*necessarily* the window! Even Microsoft admitted
this in their knowledge base. One problem with
using EXIT is that if you make DOS batch "utilities"
that you call from other batch files, an exit
command can cause your entire program to end without
returning to the original calling batch file. A
CLS command, on the other hand, is "Mostly Harmless".

So I keep things separated. If I want to force a
DOS session to end, I use EXIT. If I just want
to allow a finished DOS session to close it's
window, I use CLS. If I want to be safe, I use
both.

For most people, setting the properties
for the default command prompt (or creating a
separate PIF file for each batch file) to close
the window when completed will solve the problem.

If you're like me and write batch files that
are expected to work on more than just *your*
computer, you'll want to remember to clear the
screen. It's easier to write good complete code
than it is to get called out to visit half the
PCs in your organization to set up PIFs.

http://www.ericphelps.com

Bloed, zweet & koffie


  • TheManinBlack
  • Registratie: November 2001
  • Niet online
Hint:
code:
1
GOTO :Eof

Als laatste commando in je script.

Verder hoef je ook niet per se een aparte cmd script aan te maken als je CALL wilt gebruiken, je kan namelijk ook subroutines aanspreken die in hetzelfde script staan.

Bijvoorbeeld:
code:
1
CALL :List

code:
1
2
3
4
5
6
7
8
9
:List :: Kijk of er een proces draait
ECHO.
ECHO **********************************************
ECHO Checken of Workpace draait....
ECHO **********************************************

pslist workpace >NUL 2>&1

GOTO :Eof

Hier gebruik ik ook de niet-bestaande subroutine :Eof waardoor ie dat commando afsluit en verder gaat met het script. Mijn scripts zijn overigens meestal .cmd scripts, geen .bat (alhoewel er weinig verschil is).

@ Vilenin: Ik werk inderdaad enkel op W2K met cmd scripts.

[ Voor 13% gewijzigd door TheManinBlack op 19-08-2004 12:39 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 05-05 18:54

TeeDee

CQB 241

Kijk, toch weer wat geleerd.
Thanks :)

Heart..pumps blood.Has nothing to do with emotion! Bored


  • weeraanmelden
  • Registratie: Juni 2001
  • Laatst online: 20-04 17:25

weeraanmelden

Opnieuw opstarten...

windows XP kan een process (je batch commandpo ) stoppen.
Ik weet de naam alleen niet.
Dit is een standaard exe die in windows XP zit.

er is een freeprogramma pskill die dit doet.

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

TheManinBlack: lokale calls werken alleen in W2k en XP, niet lager. Ff wat om rekening mee te houden dus. En voor de volledigheid: WAIT zit niet standaard in Windows maar in de Resource Kit, die niet gratis is.

pskill is van http://www.sysinternals.com/ en zit in pstools ;) Deeplink.

[ Voor 27% gewijzigd door CmdrKeen op 19-08-2004 12:39 ]

Bloed, zweet & koffie


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Even een kleine titel edit zodat het OS in je topic titel staat - probeer daar ook zelf op te letten :)

  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

Topicstarter
hmzzz, volgenmij gaat t niet helemaal ok ... ik heb nu dit gedaan:
in 1 batch:
code:
1
2
3
4
5
6
7
8
9
10
@ECHO OFF
start "Apache Service" /D"K:\data-base\WEB\apache\"/MIN apache.exe
echo.
echo wacht ff 4 sec.
k:
cd "K:\data-base\WEB\apache\"
wait.exe 4
start /D"C:\Program Files\Internet Explorer\" IEXPLORE.EXE http://localhost
@ECHO OFF
CLS

Gaat niet, na sluiten van de browser, blijft de dos-box met apache derin doodleuk open staan.

en met 2 batchfile (CALL):
b1.bat
code:
1
2
3
4
@ECHO OFF
start "Apache Service" /D"K:\data-base\WEB\apache\"/MIN apache.exe
@echo off
cls

b2.bat
code:
1
2
3
4
5
6
7
8
@ECHO OFF
call b1.bat
k:
cd "K:\data-base\WEB\apache\"
wait.exe 4
start /D"C:\Program Files\Internet Explorer\" IEXPLORE.EXE http://localhost
@echo off
cls

(ik run dus b2.bat)

geeft zelfde result als alles in 1 batch!!

Ik post eigenlijk nu pas mijn vraag, ben hier al een tijdje mee bezig.... maar had ergens anders gelezen, dat het mogelijk zou zijn om een extra batch te laten lopen die checkt of een applicatie nog "in de lucht" is, zo niet sluit "wat" af!

euh...ja


  • Krypt
  • Registratie: April 2000
  • Laatst online: 05-05 17:38
Je moet apache gewoon killen; aangezien het in een apart dosscherm draait. met dat CLS of Goto end enzo werkt het niet..

Download; zoals al eerder aangegeven; pskill van sysinternals (freeware) en zet als laatste opdracht regel: pskill apache.exe

en je apache is gekill'd

(dacht trouwens eerste dat apache op een andere machine draaide; blijkbaar verkeerd gelezen)

[ Voor 16% gewijzigd door Krypt op 19-08-2004 12:46 ]

Pvouput live


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 25-03 16:41

CmdrKeen

Krentenboltosti

@echo off doe je al bovenin, dus dat hoeft niet nog een keer (tenzij je 'm ergens anders weer aan zet).

Doe eens op het laatst dit:
code:
1
2
EXIT
CLS

Bloed, zweet & koffie


  • TheManinBlack
  • Registratie: November 2001
  • Niet online

  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

Topicstarter
thnx alvaste voor die snelle reacties.

ik heb die pskill.exe gedownload, en getest... en dat werkt idd goed... maar te goed kijk, de opdracht pskill apache.exe wordt direct uitgevoert nadat de browser is gestart (logisch ook, want das de volgende regel)... alleen dat is dan weer niet de bedoeling, hij mag pas weg nadat je de browser killed.

EXIT
CLS

op het einde werkt niet.

euh...ja


  • TheManinBlack
  • Registratie: November 2001
  • Niet online
Verander
code:
1
start /D"C:\Program Files\Internet Explorer\" IEXPLORE.EXE http://localhost
in
code:
1
CALL blabla

  • Krypt
  • Registratie: April 2000
  • Laatst online: 05-05 17:38
Rfce schreef op 19 augustus 2004 @ 12:55:
thnx alvaste voor die snelle reacties.

ik heb die pskill.exe gedownload, en getest... en dat werkt idd goed... maar te goed kijk, de opdracht pskill apache.exe wordt direct uitgevoert nadat de browser is gestart (logisch ook, want das de volgende regel)... alleen dat is dan weer niet de bedoeling, hij mag pas weg nadat je de browser killed.

EXIT
CLS

op het einde werkt niet.
Dan zet je bij de opdrachtregel voor het starten van de internet explorer '/W' ertussen.. dan wacht ie totdat de browser afgesloten is.. zoals al eerder gepost..

Pvouput live


  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

Topicstarter
hardstikke bedankt, die /w heb ik waarschijnlijk overheen gelezen. maar zo werkt het idd perfect.

weer wat geleerd qua batch file...

euh...ja

Pagina: 1