Anonim8 Opublikowano 9 Stycznia 2011 Zgłoś 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ł?
Flavius Opublikowano 9 Stycznia 2011 Zgłoś 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.
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś 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
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś 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?
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś 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"
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś Opublikowano 9 Stycznia 2011 Wystarczy bez sleep 20 To tylko zatrzymuje wykonywanie skryptu.
3oo Opublikowano 9 Stycznia 2011 Zgłoś 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.
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś 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?
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś Opublikowano 9 Stycznia 2011 REM to komentarz. Wszystko, co znajduje się "na prawo" od rem jest omijane przy wykonywaniu skryptu.
3oo Opublikowano 9 Stycznia 2011 Zgłoś 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?
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś 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.
3oo Opublikowano 9 Stycznia 2011 Zgłoś 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)?
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś Opublikowano 9 Stycznia 2011 @echo off echo at+cpin="1234">pin rasdial "Iplus" "plusgsm" "plusgsm"
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś 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.
3oo Opublikowano 9 Stycznia 2011 Zgłoś 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
DawidS28 Opublikowano 9 Stycznia 2011 Zgłoś 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.
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś 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?
KolegaDudysa Opublikowano 9 Stycznia 2011 Zgłoś 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.
3oo Opublikowano 9 Stycznia 2011 Zgłoś 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.
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś 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.
3oo Opublikowano 9 Stycznia 2011 Zgłoś 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.
Anonim8 Opublikowano 9 Stycznia 2011 Autor Zgłoś 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
3oo Opublikowano 9 Stycznia 2011 Zgłoś 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.
maggreg Opublikowano 18 Stycznia 2011 Zgłoś 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
Anonim8 Opublikowano 18 Stycznia 2011 Autor Zgłoś 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.
Rekomendowane odpowiedzi