Anonim8 Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Uprzejmie proszę, na klęczkach proszę o pomoc. Przypadek nagły, niecierpiący zwłoki. Otóż używam na Windowsie XP następującego skryptu: @echo off echo at+cpin="1234">pin print /d:com4 pin>nul del pin>nul ping 127.0.0.1>nul rasdial/d|rasdial ^ Iplus /phone:*99#>nul Skrypt uruchamia modem Huawe i automatycznie ustanawia połączenie z internetem w trakcie uruchomienia systemu. Umieszczony jest w folderze Autostart. Natomiast ten sam skrypt nie działa na W7. Stąd moje pytanie dlaczego nie działa? Brak uprawnień? Źle napisany? Na W7 nie ma możliwości, żeby zadziałał? Odnośnik do komentarza
Flavius Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Stąd moje pytanie dlaczego nie działa? Brak uprawnień? Źle napisany? Na W7 nie ma możliwości, żeby zadziałał? Jak UAC jest włączony to na pewno nie zadziała z powodu braku uprawnień.Spróbuj użyć harmonogram zadań w tym celu - wybierz uruchamianie skryptu z poziomu konta SYSTEM oraz uruachamianie skryptu przy uruchamianiu systemu lub w trakcie logowania każdego użytkownika. Odnośnik do komentarza
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Osobiście wyłączyłbym Kontrolę Konta Użytkownika... Jeszcze jest coś takiego (wybacz, że przez Google, ale adres na czarnej liście) http://www.google.pl/search?q=wykona%C4%87+.bat+jako+Administrator&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pl:official&client=firefox-a Odnośnik do komentarza
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 UAC jest teraz wyłączony. Wcześniej na właczonym pojawiał się monit w okienku konsoli pt. Odmowa dostępu do C:\System32\cmd.exe Teraz po wyłaczeniu UAC monitu nie ma i połaczenie z netem nie następuje. Natomiast co do: Spróbuj użyć harmonogram zadań w tym celu - wybierz uruchamianie skryptu z poziomu konta SYSTEM oraz uruachamianie skryptu przy uruchamianiu systemu lub w trakcie logowania każdego użytkownika. Gupi jestem i nie wiem jak dodać zadanie . Czy istnieje szansa na jakąś przyziemną instrukcje? Odnośnik do komentarza
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Na chwile obecną sytuacja wygląda tak, że nauczyłem się dodawać zadanie do harmonogramu zadań. Co nie zmieniło faktu, że skrypt nie działa. Nie ustanawia połaczenia. Uparcie grzebałem dalej i wygrzebałem taki wynalazek: @echo off SLEEP 20 rem ping -n 30 127.0.0.1 >nul rasdial "Iplus" "plusgsm" "plusgsm" Z tym skryptem internet łaczy się automatycznie....ale. W oknie konsoli pojawia się najpierw komunikat, że nazwa Sleep lub plik wsadowy nie jest rozpoznawany by za chwilke, połaczenie nastąpiło. Gdybym mógł prosić biegłych skryptologów o komentarz do nazwy SLEEP, będę wdzięczny. A może wystarczy bez SLEEP? Z ostatniej chwili. Zmodyfikowałem skrypt. Chodziło mi o możliwośc podania kodu PIN. Teraz jest tak i nic nie wyskakuje. Połaczenie następuje w mgnieniu oka. @echo off echo at+cpin="1234">pin rem ping -n 30 127.0.0.1 >nul rasdial "Iplus" "plusgsm" "plusgsm" Odnośnik do komentarza
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Wystarczy bez sleep 20 To tylko zatrzymuje wykonywanie skryptu. Odnośnik do komentarza
3oo Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Żeby Ci zadziałało polecenie sleep musiałbyś zainstalować pakiet Resource Kit dla systemu. http://ss64.com/nt/sleep.html W tym skrypcie nie używasz żadnej pętli, więc sleep możesz sobie odpuścić. A jak dobrze poszukasz to znajdziesz mniej lub bardziej ciekawe obejścia. A po co jest to zakomentowane polecenie ping? Innymi słowy, usuniesz słówko rem = zacznie działać polecenie ping. Odnośnik do komentarza
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 A po co jest to zakomentowane polecenie ping? Innymi słowy, usuniesz słówko rem = zacznie działać polecenie ping. A co robi które polecenie? Odnośnik do komentarza
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 REM to komentarz. Wszystko, co znajduje się "na prawo" od rem jest omijane przy wykonywaniu skryptu. Odnośnik do komentarza
3oo Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Tak po prawdzie to polecenie ping zostało wstawione jako opcjonalnie dla sleep, wiec możesz je też wywalić. Polecenie ping wywala wszystkie komunikaty do pliku nul chyba? Odnośnik do komentarza
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Teraz Panowie Dawid i 300 zgłupiałem. Co mam w końcu wywalić? Rem? Czy to co po Rem. A tak w ogóle, przedstawcie swoje wersje a ja wypróbuje i zaraz dam znać. Tak będzie najprościej. Odnośnik do komentarza
3oo Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Całą linijkę wywal. Jak usuniesz tylko rem to zadziała polecenie ping, które wszystkie komunikaty wywali do pliku nul. Polecenie ping w tym kontekście ma tylko wstrzymać na jakiś czas wykonanie skryptu, a właściwie opóźnić wykonanie następnego polecenia. Polecenie rasdial ma Ci się wykonać, więc po co je opóźniać - masz w tym jakiś cel (jest to związane z linijką wyżej w skrypcie)? Odnośnik do komentarza
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 @echo off echo at+cpin="1234">pin rasdial "Iplus" "plusgsm" "plusgsm" Odnośnik do komentarza
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 @echo off echo at+cpin="1234">pin rasdial "Iplus" "plusgsm" "plusgsm" Działa. Zostaniemy w takim razie przy najkrótszej wersji. Dzięki za wyjaśnienia. Wreszcie skończę tutka dla wszystkich, którzy łączą się z netem inaczej. Odnośnik do komentarza
3oo Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Tak jeszcze na marginesie... Gdybyś chciał ukryć wyskakujące okienko cmd, to możesz spróbować użyć języka visual basic scripting. Podpowiedź znajdziesz w połowie postu #23. https://www.fixitpc.pl/topic/1754-dziennik-zdarzen-bledy-i-ostrzezenia-xp-sp3-home/page__view__findpost__p__13728 Odnośnik do komentarza
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Albo Bat to Exe Converter i zaznaczyć przy wykonywaniu "Invisible application". Jeszcze lepsze rozwiązanie, bo trudniej będzie podejrzeć zawartość pliku (ochrona PIN-u itd.), chociaż nie ma rzeczy niemożliwych. Odnośnik do komentarza
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Tak jeszcze na marginesie... Gdybyś chciał ukryć wyskakujące okienko cmd, to możesz spróbować użyć języka visual basic scripting. Podpowiedź znajdziesz w połowie postu #23. A jaką nazwe nadać temu plikowi z rozszerzeniem vbs? Taką samą jak pliku bat? Odnośnik do komentarza
KolegaDudysa Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Jest jeszcze Hstart, który Pika już dawno linkowała, gdzieś, ale nie pamiętam gdzie . Dodatkowo: Run a Batch File in a Hidden Window, Create a Process in a Hidden Window. Odnośnik do komentarza
3oo Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Nazwa skryptu .vbs nie ma znaczenia. Ważniejsze jest jego zawartość, a konkretniej podanie odpowiedniej ścieżki do pliku .bat. To co proponują DawidS28 i KolegaDudysa jest godniejsze uwagi. Odnośnik do komentarza
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Nazwa skryptu .vbs nie ma znaczenia. Ważniejsze jest jego zawartość, a konkretniej podanie odpowiedniej ścieżki do pliku .bat. tak wymodziłem ścieżke, ale nie wiem czy dobrze, bo okno jest Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "cmd /C .\C:\Users\Mathew\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\iplus.bat",0 Set oShell = Nothing Zastosowałem Bat to Exe - okna nie ma. Ale jestem troszkę dociekliwy, więc jakbyście rzucili okiem na zapis vbs, będę wdzięczny. Odnośnik do komentarza
3oo Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 oShell.run "cmd /C .\C:\Users\Mathew\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\iplus.bat",0 To co zbędne zaznaczyłem na czerwono. A mogłoby to wyglądać tak... (chociaż nie jestem pewien nazw ze spacjami, a nie mam na razie możliwości tego sprawdzić). oShell.run "cmd /C %appdata%\Microsoft\Windows\Start Menu\Programs\Startup\iplus.bat",0 Użyłem zmiennej środowiskowej %appdata% = http://pl.wikipedia.org/wiki/Zmienna_środowiskowa = dla windows 7 jest to C:\Users\{username}\AppData\Roaming Chociaż ja bym umieścił skrypt .vbs tam gdzie skrypt .bat, a do autostartu wrzuciłbym link do skryptu .vbs, a wtedy zapis Ci się uprości: oShell.run "cmd /C .\iplus.bat",0 Oczywiście musiałbyś skrypt .bat umieścić poza autostartem! Przy takiej lokalizacji skryptu .bat wrzucanie tam jeszcze .vbs mija się z celem. Chyba, że czegoś nie rozumiem. Odnośnik do komentarza
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 (edytowane) Oczywiście musiałbyś skrypt .bat umieścić poza autostartem! Przy takiej lokalizacji skryptu .bat wrzucanie tam jeszcze .vbs mija się z celem. Chyba, że czegoś nie rozumiem. Rozumiecie kumie bardzo dobrze. Zapodałem bata do autostartu. Pozmieniam i zobacze jak działa vbs. Sprawdziłem. Wszystko śmiga jak należy. Okienka nie ma. Internet jest. Dziekuje za cierpliwość. Gdybyście chcieli kiedyś zrobić skrypt, który nie działa - chętnie przyjmę zlecenie Pozdrawiam Edytowane 9 Stycznia 2011 przez Belfegor Odnośnik do komentarza
3oo Opublikowano 9 Stycznia 2011 Zgłoś Udostępnij Opublikowano 9 Stycznia 2011 Poniżej masz kawałek kodu, który zrobi Ci od razu link do wkazanego pliku. Nie sprawdzałem czy bangla. http://stackoverflow.com/questions/346107/creating-a-shortcut-for-a-exe-from-a-batch-file Nie ma sensu łączyć go z poprzednim skryptem, ale możesz go użyć w trakcie instalacji docelowego skryptu. Zdaje się, że winrar ma możliwość uruchomienia skryptu przy wypakowaniu. Ale tego nigdy nie robiłem. Odnośnik do komentarza
maggreg Opublikowano 18 Stycznia 2011 Zgłoś Udostępnij Opublikowano 18 Stycznia 2011 Tak gwoli ścisłości, nie wydaje się wam, że linijka: echo at+cpin="1234">pin nie jest do niczego używana, tworzy co prawda plik o nazwie "pin" ale czy coś się z tym plikiem dalej dzieje? Jeżeli tak to można zastosować sam vbs typu: Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "rasdial Iplus plusgsm plusgsm",0 Set oShell = Nothing nawet jeżeli nie to nadal można uprościć do pojedynczego skryptu bądź tworząc tymczasowy bat bądź stosując taką konstrukcję: oShell.run "%comspec% /c echo at+cpin=1234>pin | rasdial Iplus plusgsm plusgsm",0 jak widzicie wywaliłem wewnętrzne cudzysłowy bo wysypią skrypt, trzeba by je zastąpić znakami chr(34) a to bardzo gmatwa składnię a same cudzysłowy są tutaj zbędne (jak i echo off bo i tak nie wyświetlamy wyjścia). Jeszcze słowo wyjasnienia o konstrukcji: oShell.run "cmd /C .\C:\Users\Mathew\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\iplus.bat",0 spacja we fragmencie "Start Menu" powoduje, że ta konstrukcja nie zadziała, na dodatek strasznie trudno się to obchodzi w skryptach, proponowana przez @3oo %appdata% też niewiele da bo zostanie rozwinięta przez komendę, na dodatek można ustawić wewnętrzną zmienną typu "SpecialFolders" link Spacje w ścieżkach prowadzą do następujących konstrukcji - fragment jednego z moich skryptów: objShell.run "%comspec% /c" & chr(34)& strprogramfiles &"\InstallShield Installation Information\{7F3AD00A-1819-4B15-BB7D-08B3586336D7}\setup.exe"&chr(34) &" "& "/runfromtemp /l0x0009 /uninst",0,true pzdr Odnośnik do komentarza
Anonim8 Opublikowano 18 Stycznia 2011 Autor Zgłoś Udostępnij Opublikowano 18 Stycznia 2011 Tak gwoli ścisłości, nie wydaje się wam, że linijka:echo at+cpin="1234">pin nie jest do niczego używana, tworzy co prawda plik o nazwie "pin" ale czy coś się z tym plikiem dalej dzieje? Bez tej linijki przy pierwszym logowaniu do sieci modem nie łaczy się z netem. Jeśli nie ma na karcie SIM wymogu podania PINU, wtedy można z wpisu zrezygnować. Po pierwszym logowaniu kod PIN jest zapamiętywany przez modem. Przy kolejnych logowaniach już nie jest potrzebny. Odnośnik do komentarza
Rekomendowane odpowiedzi