Hyödyllisiä komentorivikäskyjä windowsiin

  • Keskustelun aloittaja Keskustelun aloittaja Mixu
  • Aloitettu Aloitettu

Mixu

Ei vain tajua
Liittynyt
25.8.2002
Viestejä
2 730
Haluatteko muuttaa kätevästi Windows- koneen IP-asetukset komentokehotteen kautta ilman, että joutuisitte avaamaan yhtäkään ikkunaa?

C:\>netsh interface ip set address "local area connection" static 192.168.0.100 255.255.255.0 192.168.0.1 1
C:\>netsh interface ip set dns "local area connection" static 192.168.0.1 primary

Edit niin siis, tuohan on hyödyllisimmillään silloin, kun asennetaan kuvia pudottamalla vaikka 10 konetta ja sitten tehdään komennoista .BAT tiedosto esim näin:

KONE.BAT sanoi:
netsh interface ip set address "local area connection" static 192.168.0.%1 255.255.255.0 192.168.0.1 1
netsh interface ip set dns "local area connection" static 192.168.0.1 primary

Nyt kun ajat tuon BAT-tiedoston komentorivillä näin:

C:\>kone 1

niin skripti laittaa PC:si IP-osoitteeksi 192.168.0.1 !

Skripti muuttaa Windows XP, 2000 Pro ja 2003 Server- koneen IP-asetukset, jos vain verkkoyhteytenne nimi on "local area connection", se on ainoa kiinteä osa.

Mutta kuinka muutetaan Windows- koneen nimi komentokehotteen kautta?
 
10% ALENNUS KOODILLA PAKKOTOISTO
Tai sit tälleen...
 

Liitteet

  • käskyt.JPG
    käskyt.JPG
    43,3 KB · Katsottu: 745

@ECHO OFF
PING 10.204.101.36 | FIND "TTL=" > NUL
IF ERRORLEVEL 1 GOTO VIRHE
IF ERRORLEVEL 0 GOTO OHI
:VIRHE
ECHO Verkkoyhteys ei toimi, tarkista asetukset
GOTO LOPPU
:OHI
ECHO Verkkoyhteydet ovat kunnossa, jatketaan.
:LOPPU


Tämä skripti pingaa annettua osoitetta näkymättömissä käyttäjältä. Jos pingi menee läpi, skripti suorittaa toimenpiteen A. Jos ping ei vastaa, suoritetaan toimenpide B.
 
Tästä kun on nyt tullut näköjään mun privathread, ni jatketaan sitten säännöllisesti... :rolleyes:

Seuraavan batchin voi käynnistää ja laittaa pyörimään minimoituna taustalle. Se pingaa aina minuutin välein tiettyä osoitetta ja jos ping vastaa, batch antaa yhden kerran popup- messagen "kohdekone on nyt käynnissä". Ja vasta kun ping ei enää mene läpi, batch antaa popupin "kohdekone on nyt kiinni." Tässä välissä se on ihan hiljaa, mutta skannaa silti jatkuvasti, yksi ping kerran minuutissa ei rasita verkkoa yhtään.
Batchi käyttää apunaan SLEEP.EXE- tiedostoa, joka odottaa n sekuntia (esim "SLEEP 60" = 60 sek odotus) ennen kuin jatkaa eteenpäin.

Tästä batchista on hyötyä, jos olet lähiverkossa ja jotain haluamaasi tavaraa tms. on tietyssä koneessa, joka on tällä hetkellä offline, mutta haluat saada tietää ~1 min tarkkuudella, koska kone on noussut hereille. Se tietty on kakki juttu, jos kohdekoneen palomuuri ei päästä ICMP:tä läpi.... mutta se ei oo mun ongelma :D

------------ VAHTI.BAT ------------------------


@ECHO OFF
SET lahdekone=192.168.0.1
SET kohdekone=192.168.0.109
CLS

:alku
ECHO %time% Pingaan konetta %kohdekone%....
PING %kohdekone% -n 1 | FIND "TTL" > NUL
IF ERRORLEVEL 1 GOTO onKiinni
IF ERRORLEVEL 0 GOTO onAuki

:onKiinni
ECHO %time% %kohdekone% ei vastaa.
IF EXIST "C:\onAuki.txt" DEL C:\onAuki.txt
IF EXIST "C:\onKiinni.txt" goto loppu
ECHO luotiedosto > C:\onKiinni.txt
ECHO %time% Lahetan viestin "%kohdekone% on nyt suljettu."
NET SEND %lahdekone% "%kohdekone% kone on nyt suljettu."
GOTO loppu

:onAuki
ECHO %time% %kohdekone% vastasi.
IF EXIST "C:\onKiinni.txt" DEL C:\onKiinni.txt
IF EXIST "C:\onAuki.txt" GOTO loppu
ECHO luotiedosto > C:\onAuki.txt
ECHO %time% Lahetan viestin "%kohdekone% on nyt auki."
NET SEND %lahdekone% "%kohdekone% on nyt auki."

:loppu
ECHO %time% Odotan 60 sekuntia....
SLEEP.EXE 60
ECHO %time% Kaynnistan kierroksen uudestaan.
ECHO.

GOTO alku
 
Mixu sanoi:
Tämä skripti pingaa annettua osoitetta näkymättömissä käyttäjältä. Jos pingi menee läpi, skripti suorittaa toimenpiteen A. Jos ping ei vastaa, suoritetaan toimenpide B.

Tällainen skirpti on tosi käytännöllinen kotikäytössä jos verkkoyhteydet tökkii. B tapauksessa vaan kirjoittaa tekstitiedoston, johon merkkaa tarvittavat tiedot esim. kellonajan ja päivämäärän. Tuon pohjalta on sitten hyvä tehdä reklamaatio ja saada ilmainen kuukausi Internetissä :D
 
Jakob sanoi:
Tällainen skirpti on tosi käytännöllinen kotikäytössä jos verkkoyhteydet tökkii. B tapauksessa vaan kirjoittaa tekstitiedoston, johon merkkaa tarvittavat tiedot esim. kellonajan ja päivämäärän. Tuon pohjalta on sitten hyvä tehdä reklamaatio ja saada ilmainen kuukausi Internetissä :D
Hoh hoh, joo voihan noinkin tehdä. Esim ne, jotka tuskastelee HomePNA:n pätkimisen kanssa, voi laittaa ton edellisen skriptin vaikka Startup- valikkoon niín, että se menee aina käynnistettäessä taustalle pyörimään. Sitten vaan muokkaisi sitä vähäsen, että se tekisi lokitiedostoa C:\LOKI.TXT, johon:
--------------- LOKI.TXT -----------------
14.9.2004 15:56.23 Verkkoyhteys poikki
14.9.2004 15:59.11 Verkkoyhteys poikki
14.9.2004 16:05.17 Verkkoyhteys poikki
...
Ja sit papereiden kanssa HomePNA:lle urputtamaan.

Jne.
 
Mixu sanoi:
Ja sit papereiden kanssa HomePNA:lle urputtamaan.
HomePNA:n ongelma onkin just siinä, että päästä-päähän hommasta ei vastaa kukaan. ISP terminoi DSL-linjan, joku toinen lafka on joskus asentanut HPNA-reitittimen takavalotakuulla ja taloyhtiössä joku joskus ylläpiti sitä ennenkuin muutti muualle. Oma linja oli nurin 75% ajasta eikä se kiinnostanut ketään. ISP mussutti vain, että heidän päässään kaikki toimii...
 
Dopey sanoi:
HomePNA:n ongelma onkin just siinä, että päästä-päähän hommasta ei vastaa kukaan.

Meikäläisen HomePNA on suoraan helvetistä. No ilmainen se on, joten ei siitä oikein valittaakkaan voi. Meillä on onneksi ihan ylläpitäjä tällä verkolla, joten se on ihan jees. Oon tehnyt yhteistyötä ylläpitäjän kanssa verkon parantamiseksi. Sain mm. tahtoni läpi siitä, että kaikki p2p-ohjelmien käyttämät portit suljettiin :D. Siinäpä saatana wartettavat. Ero on kuin yöllä ja päivällä. Tällainen jaettu kaista on todella syvältä jos käytetään p2p-ohjelmia. Sisäverkossa riehuvat virukset ovat toinen iso ongelma. Ihmiset kun ei vaan osaa päivittää käyttistä asentaa virustorjuntaa/palomuuria ja vielä päivittää niitä :(.
 
Miten tehdä ohjelma, joka suorittaa jonkin asian 14 kertaa ja lopettaa sitten?

@ECHO OFF
SET laskuri=x

:alku
ECHO Näet tämän rivin 14 kertaa
SET laskuri=%laskuri%x
IF "%laskuri%"="xxxxxxxxxxxxxxx" GOTO loppu
GOTO alku

:loppu
 
Laitetaas tähän threadiin, miten sais tehtyä exploreriin semmosen jutun että folderista oikean klikin takaa löytyisi valinta jolla se ajais jonkin komentorivikäskyn sille hakemistolle? Ois tarpeen voida ajaa tollein näppärästi esim. substaus ja rd...
 
Jortsu sanoi:
Laitetaas tähän threadiin, miten sais tehtyä exploreriin semmosen jutun että folderista oikean klikin takaa löytyisi valinta jolla se ajais jonkin komentorivikäskyn sille hakemistolle? Ois tarpeen voida ajaa tollein näppärästi esim. substaus ja rd...
Tää on vähän syntistä yrittää selittää ilman kuvia, mutta koitetaan nyt kuitenkin.

Ensinnäkin tarvitset tietysti sen komentorivitiedoston, jolla suoritat komennot tietylle kansiolle.
bat-tiedostoa kutsuttaessa, niille voidaan lähettää parametrejä. Esimerkiksi jos meillä on tälläinen bat tiedosto:
Koodi:
@echo %1
..niin se yksinkertaisesti tulostaa ensinmäisen parametrin joka sille on annettu, tyyliin: 'test.bat 666'.
%1 on siis eka parametri, %2 toinen ja niin edelleen.

Operaatiotasi varten sinun tulee siis luoda se komentorivitiedosto, joka tekee tarvittavat toimenpiteet kansiolle jonka nimi on annettu parametrinä (esim. parametri yksi, %1). Tämän komentorivitiedoston sijoitat sitten jonnekin kansioon (sillä ei ole niin oleellista merkitystä, kunhan tiedät missä se on).
Jos siis nyt kutsuisit komentoriviäsi tyyliin: 'test.bat C:\windows\', niin komentorivisi osaisi tehdä tarvittavat toimenpiteet kyseiselle kansiolle.

No jotta löydät oikean klikkauksen takaa käskyt sinun tulee tehdä pieniä lisäyksiä rekisteriin, rekisterieditorilla (regedit.exe). Viittaan tästä lähtien sekaannusten välttämiseksi rekisterissä oleviin kansioihin nimellä, "avain".
- Etsi itsesi avaimeen: 'HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\', siellä saatat nähdä esim avaimet 'open', 'explore' jne.
- Luo tähän kansioon uusi avain, jolle annat nimen jonka haluat sitten nähdä siellä oikean klikkauksen valikossa.
- Noin, kokeile nyt klikata explorerissa oikeata nappia jonkun kansion kohdalla, sinun komentosi tulisi nyt näkyä siellä valikossa, tosin se ei vielä tee mitään.
- Lisää nyt rekisterieditorissa juuri luomasi avaimen sisälle avain nimeltä 'command', tämän avaimen vakioarvolle sinun tulee antaa komento jonka haluat suorittaa tällä käskyllä. Tämä vakioarvo näkyy siellä oikealla ('default' tms.). Eli antamalla tälle vakioarvolle arvo: 'C:\komennot\test.bat', saataisiin se ajamaan kyseinen bat -tiedosto. Jotta pystyisit lähettämään tälle komentoriville kansion nimen, sinun tulee käyttää yhdistelmää '%L' (eli: 'C:\komennot\test.bat %L').

PS. Jos ole piilottanut komentorivitiedostosi kansioon jossa on välilyöntejä käytä heittomerkkejä asettaessasi vakioarvoa: '"C:\mun komennot\test.bat" %L'.
 

Latest posts

Suositut

Back
Ylös Bottom