Avatar billede vitaminen Nybegynder
16. marts 2003 - 19:57 Der er 8 kommentarer og
1 løsning

Batch: Brug af pipe commandoen "|"

Her er noget af min kode, til at pinge hele det netværk man sidder på.

<!-- Start --!>
ping 192.168.1.6 > ping_a.txt
find "Lost = 0" ping_a.txt > result_a.txt
if errorlevel 1 set aok=192.168.1.6 Something is wrong here. | goto startb
set aok=192.168.1.6 is ok.
goto startb
<!-- End --!>

startb gør det samme, bare med næste ip i rækken.

Mit problem er, at det ikke virker når jeg bruger "|". Den udføre ikke command2. Altså den command efter "|"

Skal man have en fil, lige som med choice commandoen?

\ Rune
Avatar billede Slettet bruger
17. marts 2003 - 00:57 #1
Hej vitaminen
Jeg har lige scriptet denne:

@echo off
@set /a PingAntal = 2
@echo Ping statestik %date% %time%> Resultat.txt
@echo Hver IP er pinget %PingAntal% gange.>> Resultat.txt
@for /f "eol=@" %%a in (%~sf0) do ping -n %PingAntal% %%a | find "Lost = 0" > nul && echo %%a Ok >> Resultat.txt & if errorlevel 1 echo %%a Fejl >> Resultat.txt
@goto end
@Skriv IP adresser herunder
192.168.2.1
192.168.2.10
192.168.2.12
192.168.2.2
192.168.2.3
@:end
@start notepad.exe Resultat.txt

Håber du kan bruge den :-)
Avatar billede vitaminen Nybegynder
18. marts 2003 - 20:05 #2
FANDME nice scriptet.

Jeg er lige startet på det fis her, for nogle dage siden. Egentlig meget underholdende :)

Hvordan har du lært dig det? Bare læst lidt hist og her?

Du fortjener points :)
\ Rune
Avatar billede vitaminen Nybegynder
18. marts 2003 - 20:14 #3
Måske du kunne forklare mig denne linie bare lige kort? :)

@for /f "eol=@" %%a in (%~sf0) do ping -n %PingAntal% %%a | find "Lost = 0" > nul && echo %%a Ok >> Resultat.txt & if errorlevel 1 echo %%a Fejl >> Resultat.txt

Ville være kanon
Avatar billede vitaminen Nybegynder
18. marts 2003 - 20:43 #4
Forstår ikke:

@for /f "eol=@" %%a in (%~sf0)

find "Lost = 0" > nul && <- betyder det bare at den ikke skal skrive resultatet nogen steder?
Avatar billede Slettet bruger
18. marts 2003 - 21:38 #5
Et godt sted at søge information er Windows Help.

"for"  komandoen gennemløber filen (%~sf0) denne fil linie for linie. Og læser linien ind i variablen %a (Ja det er %a og ikke %%a, det er kun i batch filer at den angives med 2 %%, i en komando prompt er det %a)

"eol=@"  siger at End Of Line tegnet er @, det vil sige at linier der starter med @ "springes over"

"ping -n %PingAntal% %%a"  Her pinger vi bare.

" | find "Lost = 0" > nul"  Sender ping resultatet til find, der undersøger om resultatet indeholder "Lost = 0", outputtet fra ping sendes til nul (det forsvinder ind i de evige bit marker).

"&&"  betyder: Hvis den forige komando lykkedes (find fandt "Lost = 0") så udfør den næste komande, ellers ikke.

"echo %%a Ok >> Resultat.txt"  skriv IP og Ok i filen, Resultat.txt

"&"  skilleteg mellem 2 komandoer på samme linie.

"if errorlevel 1 echo %%a Fejl >> Resultat.txt"  find fandt ikke "Lost = 0", så vi skriver IP og Fejl i Resultat.txt


Jeg håber at dette kan hjælpe, det er faktisk sværere at beskrive et script, for en uøvet, end det er at skrive det.

:-)
Avatar billede Slettet bruger
20. marts 2003 - 01:13 #6
:-)
Avatar billede Slettet bruger
22. marts 2003 - 20:20 #7
Har du glemt at ta' din pille (vitaminpille)?
Avatar billede vitaminen Nybegynder
23. marts 2003 - 00:12 #8
Hehe :)

Jeg har haft galt travlt de sidste mange dage.´

Fantastisk forklaring. Du fortjener point.

\ Rune
Avatar billede eneqvist Nybegynder
05. oktober 2005 - 09:14 #9
Hamrende godt script, kører det dagligt for at checke om alle servere og printere er oppe.
Er der mulighed for at få dette script til også at vise hostaddresse?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester