Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Jak napisać skrypt?

10 views
Skip to first unread message

Marek

unread,
Aug 14, 2011, 12:11:53 PM8/14/11
to
Witam,

Z uwagi na wadliwość sterownika SetPoint musiałem napisać skrypt do jego
restartowania. Wszystko działa ok lecz ma on jednak jeden feler -
pozostawia otwarte okno po wykonaniu akcji. Czy ktoś wie co należy zmienić
w poniższym kodzie aby okno zamykało się samo?

@echo off
taskkill /f /im setpoint.exe
"C:\Program Files\Logitech\SetPointP\SetPoint.exe" /launchGaming

Smok Eustachy

unread,
Aug 14, 2011, 2:48:51 PM8/14/11
to
Dnia Sun, 14 Aug 2011 18:11:53 +0200, Marek zatrybił (a):

A exit na końcu?

Radosław Sokół

unread,
Aug 14, 2011, 2:51:44 PM8/14/11
to
W dniu 14.08.2011 18:11, Marek pisze:

> pozostawia otwarte okno po wykonaniu akcji. Czy ktoś wie co należy zmienić
> w poniższym kodzie aby okno zamykało się samo?
>
> @echo off
> taskkill /f /im setpoint.exe
> "C:\Program Files\Logitech\SetPointP\SetPoint.exe" /launchGaming

Spróbuj w ostatnim wierszu uruchamiać EXEca przez start, a
nie tylko podanie nazwy.

--
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół | http://www.grush.one.pl/ |
| | Politechnika Śląska |
\........................................................../

m4rkiz

unread,
Aug 14, 2011, 2:50:04 PM8/14/11
to

"Marek" <pr...@spamowi.com> wrote in message
news:1n7r2221nkwis$.1e718t8sib8zu$.dlg@40tude.net...

> Witam,
>
> Z uwagi na wadliwość sterownika SetPoint musiałem napisać skrypt do jego
> restartowania. Wszystko działa ok lecz ma on jednak jeden feler -
> pozostawia otwarte okno po wykonaniu akcji. Czy ktoś wie co należy zmienić
> w poniższym kodzie aby okno zamykało się samo?

hstart, albo tez je ubij

Marek

unread,
Aug 15, 2011, 10:23:19 AM8/15/11
to
Dnia Sun, 14 Aug 2011 18:48:51 +0000 (UTC), Smok Eustachy napisał(a):

> A exit na końcu?

To już próbowałem. Niczego nie zmienia. Okno pozostaje otwartym. Co więcej.
Gdy skrypt nie posiada exit i zakomentuję uruchomienie setpoint'a, to okno
zamyka się. Exit nie jest więc potrzebny do niczego.

Grzegorz Niemirowski

unread,
Aug 15, 2011, 10:25:37 AM8/15/11
to
Marek <pr...@spamowi.com> napisał(a):

> To już próbowałem. Niczego nie zmienia. Okno pozostaje otwartym. Co
> więcej. Gdy skrypt nie posiada exit i zakomentuję uruchomienie
> setpoint'a, to okno zamyka się. Exit nie jest więc potrzebny do niczego.

Dokładnie tak. Skrypt kończy się, gdy zostanie wykonana ostatnia komenda,
tzn. gdy ona zakończy działanie. Ostatnia komenda to uruchomienie programu
więc ona się kończy w momencie jego zamknięcia. Jesli to ma działać
asynchronicznie, to trzeba użyć start, tak jak pisał Radek.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 3 days, 18 hours, 6 minutes and 30 seconds

Marek

unread,
Aug 15, 2011, 10:35:36 AM8/15/11
to
Dnia Sun, 14 Aug 2011 19:50:04 +0100, m4rkiz napisał(a):

>
> hstart, albo tez je ubij

Pobrałem ten programik i pewnie załatwi sprawę. Jednakże chciałbym rozważyć
jeszcze wątek ubijania okna. Zmodyfikowałem skrypt:

@echo off
taskkill /f /im setpoint.exe
"C:\Program Files\Logitech\SetPointP\SetPoint.exe" /launchGaming

taskkill /f /im cmd.exe

...i kompletnie nic się nie zmieniło. Okno pozostaje otwarte. Gdy natomiast
otworzę drugie okno a w nim wprowadzę:

taskkill /f /im cmd.exe

...zostaną zamkniete oba. O co może chodzić? Dlaczego to pierwsze samo się
nie zamknęło mimo wyraźnej komendy?

Już bardziej z ciekawości: czy skrypt może uzyskać swój PID w celu
zamknięcia siebie samego a nie wszystkich okien programu cmd?

Marek

unread,
Aug 15, 2011, 10:49:58 AM8/15/11
to
Dnia Sun, 14 Aug 2011 20:51:44 +0200, Radosław Sokół napisał(a):

> W dniu 14.08.2011 18:11, Marek pisze:
>> pozostawia otwarte okno po wykonaniu akcji. Czy ktoś wie co należy zmienić
>> w poniższym kodzie aby okno zamykało się samo?
>>
>> @echo off
>> taskkill /f /im setpoint.exe
>> "C:\Program Files\Logitech\SetPointP\SetPoint.exe" /launchGaming
>
> Spróbuj w ostatnim wierszu uruchamiać EXEca przez start, a
> nie tylko podanie nazwy.

Właśnie eksperymentuję i zatrzymałem się na parametrach:

start /b "C:\Program Files\Logitech\SetPointP\SetPoint.exe" launchGaming

powoduje próbę uruchomienia launchGaming zamiast przekazać to jako parametr

start /b "C:\Program Files\Logitech\SetPointP\SetPoint.exe" /launchGaming

traktuje launchGaming jako błędny parametr polecenia start

start /b "C:\Program Files\Logitech\SetPointP\SetPoint.exe /launchGaming"

nic nie robi

Jak więc przekazać parametr?

Marek

unread,
Aug 15, 2011, 10:55:21 AM8/15/11
to
Dnia Mon, 15 Aug 2011 16:25:37 +0200, Grzegorz Niemirowski napisał(a):

> Marek <pr...@spamowi.com> napisał(a):
>> To już próbowałem. Niczego nie zmienia. Okno pozostaje otwartym. Co
>> więcej. Gdy skrypt nie posiada exit i zakomentuję uruchomienie
>> setpoint'a, to okno zamyka się. Exit nie jest więc potrzebny do niczego.
>
> Dokładnie tak. Skrypt kończy się, gdy zostanie wykonana ostatnia komenda,
> tzn. gdy ona zakończy działanie. Ostatnia komenda to uruchomienie programu
> więc ona się kończy w momencie jego zamknięcia. Jesli to ma działać
> asynchronicznie, to trzeba użyć start, tak jak pisał Radek.

Dzięki :)

Tylko mam z tym kłopot - odpisałem Radkowi, ale może szybciej mi pomożesz.
Mianowicie nie potrafię przekazać parametru /launchGaming do aplikacji za
pomocą start.

Marek

unread,
Aug 15, 2011, 11:07:18 AM8/15/11
to
P.S.
Chodzi o przekazanie slash'a w parametrze. O niego rozbija się wszystko.
Moze da się podać go jako kod ASCII? Jeśli tak, to jak to się robi?

marfi

unread,
Aug 15, 2011, 1:20:41 PM8/15/11
to
Użytkownik "Marek" <pr...@spamowi.com> napisał w wiadomości
news:pksa5yw5yzm5.3...@40tude.net...

> Dnia Sun, 14 Aug 2011 20:51:44 +0200, Radosław Sokół napisał(a):
...
> Jak więc przekazać parametr?


Może tak:
start /b "tytul" "C:\Program Files\Logitech\SetPointP\SetPoint.exe"
/launchGaming


--
marfi

Marek

unread,
Aug 15, 2011, 1:25:29 PM8/15/11
to

W nowej linii??? Otrzymuję komunikat, że polecenie /launchGaming nie jest
rozpoznawalne przez system. Jeśli w tej samej linii, to /launchGaming jest
traktowane jako parametr start a nie wywoływanego programu i otrzymuję
komunikat, że start nie ma takiego parametru.

Marek

unread,
Aug 15, 2011, 2:00:53 PM8/15/11
to
hstart nie radzi sobie tak samo - nie akceptuje switch'a /launchGaming w
scieżce programu

BQB

unread,
Aug 15, 2011, 2:23:20 PM8/15/11
to
W dniu 2011-08-15 19:25, Marek pisze:

zrób skrypt np c:\setpointp.cmd
w nim wpisz C:\Program Files\Logitech\SetPointP\SetPoint.exe /launchGaming

Kolejny skrypt c:\startspp.cmd i w nim:
start c:\setpointp.cmd

BQB

unread,
Aug 15, 2011, 2:25:30 PM8/15/11
to
W dniu 2011-08-15 20:23, BQB pisze:

zapomniałem o parametrze /b, ale z nim poeksperymentuj już sam ;-)

marfi

unread,
Aug 15, 2011, 3:04:37 PM8/15/11
to
Użytkownik "Marek" <pr...@spamowi.com> napisał w wiadomości
news:14nq721arwa40.emebacfrgers$.dlg@40tude.net...

> Dnia Mon, 15 Aug 2011 19:20:41 +0200, marfi napisał(a):
>
>> Użytkownik "Marek" <pr...@spamowi.com> napisał w wiadomości
>> news:pksa5yw5yzm5.3...@40tude.net...
>>> Dnia Sun, 14 Aug 2011 20:51:44 +0200, Radosław Sokół napisał(a):
>> ...
>>> Jak więc przekazać parametr?
>>
>>
>> Może tak:
>> start /b "tytul" "C:\Program Files\Logitech\SetPointP\SetPoint.exe"
>> /launchGaming
>
> W nowej linii??? Otrzymuję komunikat, że polecenie /launchGaming nie jest


Nie, nie w nowej lini - to poczta systemu windows podzieliła
autoamatycznie.

Niekiedy trudno zrozumieć intencje programistów Windows w sytuacji gdy
ścieżka do pliku zawiera spację więc próbowałbym jeszcze (w jedenj linii):

start /b "tytul" "C:\Program Files\Logitech\SetPointP\SetPoint.exe"
"/launchGaming"

lub

start /b "tytul" "C:\Program Files\Logitech\SetPointP\SetPoint.exe
/launchGaming"


--
marfi

Marek

unread,
Aug 15, 2011, 4:03:28 PM8/15/11
to
Sprytne obejście problemu! :-))) Dzięki.

Marek

unread,
Aug 15, 2011, 4:13:08 PM8/15/11
to
Dnia Mon, 15 Aug 2011 21:04:37 +0200, marfi napisał(a):

> Nie, nie w nowej lini - to poczta systemu windows podzieliła
> autoamatycznie.

Domyśliłem się i sprawdziłem obie wersje.

> start /b "tytul" "C:\Program Files\Logitech\SetPointP\SetPoint.exe"
> "/launchGaming"

A to zadziałało! Co ciekawe gdy używany jest parametr, to tytuł okna nie
może być pominięty bo inaczej błąd wyświetli.

Dzięki! :-)

>
> lub
>
> start /b "tytul" "C:\Program Files\Logitech\SetPointP\SetPoint.exe
> /launchGaming"

To zgodnie z tym co napisałem w odpowiedzi poprzedniej - nie zadziała gdyż
traktowane jest jako nazwa programu

Marek

unread,
Aug 15, 2011, 4:14:02 PM8/15/11
to
Zobacz co odpisałem marfiemu. On też znalazł rozwiązanie. Polecenie start
musi być z tytułem okna - wtedy zadziała.

m4rkiz

unread,
Aug 15, 2011, 6:54:27 PM8/15/11
to
Marek wrote:
> ...zostaną zamkniete oba. O co może chodzić? Dlaczego to pierwsze samo się
> nie zamknęło mimo wyraźnej komendy?

racja w sumie, wisi na SetPoint.exe przeciez

Grzegorz Niemirowski

unread,
Aug 16, 2011, 3:12:52 AM8/16/11
to
BQB <ad...@anty.spamowy.com.invalid> napisał(a):

> zrób skrypt np c:\setpointp.cmd
> w nim wpisz C:\Program Files\Logitech\SetPointP\SetPoint.exe /launchGaming
> Kolejny skrypt c:\startspp.cmd i w nim:
> start c:\setpointp.cmd

Przekombinowane, nie ma potrzeby robić dwóch skryptów.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 4 days, 10 hours, 54 minutes and 45 seconds

Grzegorz Niemirowski

unread,
Aug 16, 2011, 3:14:09 AM8/16/11
to
Marek <pr...@spamowi.com> napisał(a):

>> start /b "tytul" "C:\Program Files\Logitech\SetPointP\SetPoint.exe"
>> "/launchGaming"
> A to zadziałało! Co ciekawe gdy używany jest parametr, to tytuł okna nie
> może być pominięty bo inaczej błąd wyświetli.

Taka głupia logika Microsoftu, jakieś niezłe dragi musiał brać ten, co
wymyślił motyw z tym tytułem okna....

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 4 days, 10 hours, 55 minutes and 21 seconds

0 new messages