-
Notifications
You must be signed in to change notification settings - Fork 1
/
batch03.cmd
104 lines (75 loc) · 4.04 KB
/
batch03.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
@echo off
:: Dette er samme script som batch01.cmd, men med langt mindre forklaringer, kommentarer og info til skjer.
:: Tanken er å lage et komplett program. Om noe er uklart så les om detaljer i batch01.cmd.
:: Info før du starter og informasjon om hva scriptet gjør
:: Programmet er "ufarlig" da det utfører ping mot en eller flere IP-adresser.
:: NB det utføres kun ping mot 5 adresser og ikke alle 255 som er maks kapasitet til programmet.
:: Linjen: FOR /L %%A IN (1,1,255) DO ( ping -a -n 1 -4 %currentiprange%.%%A |findstr /I /N /O /A:f1 /C:"TTL=" >> %outfile% )
:: senere i programmet endres fra (1,1,255) DO til (1,1,5) DO. Så let etter den linjen om du vil endre på omådet. LEs om for med /?
:: omd trenger mer hjelp. Dersom en setter %currentiprange% til en guldig IP-adresse og %outfile% manuelt er linjen med
:: FOR /L %%A det eneste som trengs. Altså er dette lange programmet kun på en linje om en ønsker det. Rapporten blir ikke like bra
:: Men hovedhensikten som er å vise ping vil virke som det skal. Her er et slikt eksempel. NB endre på IPadressene om det ikke stemmer hos deg.
:: FOR /L %%A IN (1,1,16) DO ( ping -a -n 1 -4 102.168.11.%%A |findstr /I /N /O /A:f1 /C:"TTL=" >> rapportfil.txt )
:: linjen over alt som trengs, alt annet er formattering og informasjon til sluttbruker.
@prompt $D$G$S
@echo =========================== =========================== ======================
:: Velger noen IP-områder. Den andre linjen er for lokalt nettverk i egen bolg
:: Den første er område hos NTNU der folk.ntnu har adressen 129.241.56.95
set iprange1=129.241.56
set iprange2=192.168.1
@set currentiprange=%iprange2%
:: Rapportfilen med innhold.
@set outfile=".\filrep.txt"
@echo.
@echo Valgt IP-omraade er: %currentiprange%.1 - 255
@echo =========================== =========================== ======================
goto info
:: Potensiell fargelegging og eksempel på bruk av powershell inni et batch-script
:: CALL:
:DarkYellowINFO
%Windir%\System32\WindowsPowerShell\v1.0\Powershell.exe write-host -foregroundcolor DarkYellow %1
goto:eof
:info
:: En hopper over fargelegging av linjer i første omgang. Når de trengs hopper en innom :DarkYellowINFO
:: og så er dfet viktig å huske på exit fra denne. det bruker en spesialkommando goto:eof (end of file)
prompt $p$g
pause > nul
cls
echo.
echo =========================== =========================== ======================
echo.
echo Velkommen til mulitiping.
echo Dette "programmet" utforer ping til en IP-range og starter paa
echo IP-adresse %currentiprange%.1 og slutter paa %currentiprange%.255 som er broadcast BC.
echo.
:: Nå brukes fargeleggingen. Dette kan gjøres flere ganger i programmet med ulike farger om ønskelig.
:: Da lager en flere linjer som :DarkYellowINFO over
call:DarkYellowINFO "Dette eksempelet paa et script / "program" er 'ufarlig' og kjorer i CMD."
goto ping
:: Mulig å legge flere forberedelseslinjer mellom informasjon og selve utførelsen av programmet
:ping
echo =========================== =========================== ======================
echo Naa er siste sjanse aa avbryte med CTRL+C om du ikke vil kjore "programmet"
echo Utkatalog: %cd%\%outfile%
echo.
echo Pass paa %outfile% med katalogplassering er et gyldig du har skriverettigheter.
pause
echo Start ping: > %outfile%
date /t >> %outfile%
time /t >> %outfile%
echo.
echo Ping av IP-adresser er i gang. Alt sendes til rapportfil saa det vises ikke noe paa skjerm.
echo Det tar ca 3 minutt foer programmet er ferdig med alle IP-adressene.
echo.
FOR /L %%A IN (1,1,255) DO ( ping -a -n 1 -4 %currentiprange%.%%A |findstr /I /N /O /A:f1 /C:"TTL=" >> %outfile% )
echo. >> %outfile%
echo End ping: >> %outfile%
date /t >> %outfile%
time /t >> %outfile%
echo end ping
goto end
:: Igjen om noe skal settes som f.eks. exit-kode o.l. så kan det settes her før :end som avslutter programmet.
:: Linjene etter :end er for å ordne opp i evt endringer som kan påvirke CMD i etterkant.
:end
prompt $p$g
echo end program