QimenMedlem sedan juni 20015 009 inlägg Hej
Kan inget om detta och har inte tänkt sätta mig in i det. Men hur gör man en batfil så att när man kör den så ska den köra ett kommando i kommandotolken, alltså jag har ett program (edns.exe) och så vill jag köra ett kommando som är i stil med:
edns -u Qimen -p lalalala [-ip IP_Address][-d qimen.net][-quiet]
Det går att lösa, eller? :)
(vill slippa behöver skriva in det varje gång jag ska byta ip adress, vilket telia har en tendens att göra ofta)
nikoMedlem sedan juni 20022 599 inlägg Förstår inte riktigt hur du menar. Om du bara vill köra ett "hårdkodat" kommando i en bat-fil så skriver du bara in det rakt upp och ner ungefär som du gör i ditt citat. Om du menar att du vill kunna ha olika inparametrar så kan du skriva tex:
edns -u %1 -p %2 -ip %3 -d %4 -quiet
i bat-filen och sen anropa med tex:
dittbatfilsnamn Qimen lalalala XXX.XXX.XXX.XXX qimen.net
PeeerMedlem sedan mars 20025 907 inlägg Följer upp din tråd lite Qimen (hoppas det inte gör något ;))
net start mysql
net start apache
D:\Program\MySQL\bin\winmysqladmin.exe
Ovanstående kod startar 2 tjänster och ett program, men jag vill att när koden har exekverats så ska bat-filen stängas ner. Det gör den inte. Det verkar som om ingen kod efter programstarten körs.
Fråga 2. Jag har även en liknande fil för att stänga ner tjänsterna. Kan man stänga ner ett program också? typ
end D:\Program\MySQL\bin\winmysqladmin.exe
eller går inte det att göra?
GunnarDMedlem sedan juni 20014 290 inlägg I en bat fil så körs kommandona radvis och den fortsätter inte till nästa rad förän kommando är klart
I senare versioner av windows finns kommandot start (tror det dök up i W2k).
Prova att skriva om din bat-fil såhär:
net start mysql
net start apache
start D:\Program\MySQL\bin\winmysqladmin.exe
PeeerMedlem sedan mars 20025 907 inlägg Det fungerade fint! :)
Men finns det inget smidigt sätt att döda en process på?
nikoMedlem sedan juni 20022 599 inlägg
Peeer skrev:
Men finns det inget smidigt sätt att döda en process på?
För att döda en godtycklig process (en NT-service är ett specialfall) så måste du ha processid:et, eller ett tråd:id, eller ett fönsterhandtag. Sen måste du ha tillgång till funktioner som SendMessage och/eller TerminateProcess och detta är inget som går att komma åt ifrån de "inbyggda" DOS-kommandona som är oerhört begränsade. Däremot kan du naturligtvis leta upp eller skriva externa program som gör jobbet och anropa dessa från en bat-fil. Så, som sagt, nåt smidigt generellt sätt finns nog inte.
(Vad du skulle kunna göra är att anropa TerminateProcess via rundll.exe i en bat-fil och skicka in processid:et som du läser av i taskmanagern, men det är ju så mycket jobb så att det antagligen är lättare att trycka på krysset direkt?)
Man kan komma år TerminateProcess och SendMessage från en -.bat eller .cmd fil med rundll32.
PeeerMedlem sedan mars 20025 907 inlägg Har lyckats hitta ett sätt att döda en process nu
taskkill /IM winmysqladmin.exe /F
nikoMedlem sedan juni 20022 599 inlägg
Peeer skrev:
Har lyckats hitta ett sätt att döda en process nu
Se där. Funkar dock endast på XP Pro, väl?
PeeerMedlem sedan mars 20025 907 inlägg
niko skrev:
Peeer skrev:
Har lyckats hitta ett sätt att döda en process nu
Se där. Funkar dock endast på XP Pro, väl?
Mycket möjligt, bara där jag provat (och bara där jag har behovet också :))