Toon posts:

[WIN2K] Batchfile kopieert alle documenten in netwerk

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met de volgende opdracht:

Ik moet voor een klein netwerkje van 4 computers (allemaal WIN2K) een batchfile schrijven, die alles naar 1 pc kopieert en daarna gaat branden.

het kopieren is voor mij geen punt, maar zit even met het volgende:
Wat als er een werkstation niet aanstaat.

Ik weet dat het mogelijk is om iets met een if -> then regel te doen.

maar hij doet eerst: net use k: \\pc\documenten
en hier wil een if regel (dus als hij n iet aanstaat dat hij naar een volgede pc gaat met de zelfde kopieer regel..

  • Predator
  • Registratie: Januari 2001
  • Laatst online: 16:59

Predator

Suffers from split brain

code:
1
2
3
4
ping -n 1 [ip pc1] | find "Reply from"
if errorlevel 1 goto pc2
[commands for pc1]
:pc2


Je kan natuurlijk ook nog wat spelen met de opties van ping ;)

Everybody lies | BFD rocks ! | PC-specs


  • Wimmel
  • Registratie: Februari 2001
  • Laatst online: 17:49

Wimmel

Hello

Je hoeft ook geen net use te gebruiken, je kunt bij het copy commando gewoon een UNC pad gebruiken.

bv. copy \\pcnaam\directory\*.* (de bestanden) lokaledir\*.*

Men are from Mars, women are meteors crashing into Mars.
Discogs


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Ook leuk om te doen:

on errorlevel blabla goto alarm

alarm net send <jouwpc> werkstation x staat niet aan

ofzoiets..
Als je iets met blat of sendmail for NT hebt (of de SMTP component van IIS) laat je jezelf of een ander een mail sturen :)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Predator schreef op 18 december 2002 @ 18:48:
code:
1
2
3
4
ping -n 1 [ip pc1] | find "Reply from"
if errorlevel 1 goto pc2
[commands for pc1]
:pc2
well ff %errorlevel%==1 gebruiken :) (find /i "reply from"... maar details, details :))

[ Voor 12% gewijzigd door Verwijderd op 19-12-2002 16:29 ]


Verwijderd

als het script op een win2k bak staat en alle commands voor alle pc;s hetzelfde zijn kan je het onderstaande gebruiken...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
:: syntax: cmdnaam [pc1][pc2][pc3][pc4]

:loop
set pc=%1
if "%pc%"=="" goto end
ping -n 1 %pc% | find /i "reply from"
if %errorlevel%==1 goto error
[commands for pc's]
shift
goto loop

:error
echo pc %pc% did not respond to a ping
shift
goto loop

:end

[ Voor 7% gewijzigd door Verwijderd op 19-12-2002 16:39 ]


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 16:59

Predator

Suffers from split brain

Verwijderd schreef op 19 December 2002 @ 16:27:
[...]


well ff %errorlevel%==1 gebruiken :) (find /i "reply from"... maar details, details :))

Dat werkt ook hoor :)
code:
1
if errorlevel X

Dit betekent:
if %errorlevel%>=X

Makkelijker om te schrijven ;)

Hangt er natuurlijk vanaf wat een exitstatus groter dan 1 betekent bij find.

[ Voor 12% gewijzigd door Predator op 19-12-2002 16:39 ]

Everybody lies | BFD rocks ! | PC-specs


  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 02:14

TheVMaster

Moderator WOS
Verwijderd schreef op 18 December 2002 @ 18:33:
Ik zit met de volgende opdracht:

Ik moet voor een klein netwerkje van 4 computers (allemaal WIN2K) een batchfile schrijven, die alles naar 1 pc kopieert en daarna gaat branden.

het kopieren is voor mij geen punt, maar zit even met het volgende:
Wat als er een werkstation niet aanstaat.

Ik weet dat het mogelijk is om iets met een if -> then regel te doen.

maar hij doet eerst: net use k: \\pc\documenten
en hier wil een if regel (dus als hij n iet aanstaat dat hij naar een volgede pc gaat met de zelfde kopieer regel..
Hmm...hebben je NICS Wake On Lan?? (dus dat je zie via je NIC aan kunt zetten??) ...zo ja..dan heb ik wel een (freeware) WOL tooltje voor je :) WERKT SUPER...

gewoon WOL [MAC-ADRES] uitvoeren en POEFff..PC gaat aan!

enneh...indien het niet kan dan kun je idd een ping doen (die resultaat naar een textfile laat schrijven) en dan eerst ff de text file inleest om te kijken of er een REPLY FROM in voorkomt (ehh..dan kun je het beter in VBS doen...gaat makkelijker)...

DiscVault - Beheer je fysieke schijvencollectie | Beschikbaar als Self-Hosted, iOS (ook TestFlight) en Android (beta).


  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 02:14

TheVMaster

Moderator WOS
Verwijderd schreef op 19 December 2002 @ 16:35:
als het script op een win2k bak staat en alle commands voor alle pc;s hetzelfde zijn kan je het onderstaande gebruiken...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
:: syntax: cmdnaam [pc1][pc2][pc3][pc4]

:loop
set pc=%1
if "%pc%"=="" goto end
ping -n 1 %pc% | find /i "reply from"
if %errorlevel%==1 goto error
[commands for pc's]
shift
goto loop

:error
echo pc %pc% did not respond to a ping
shift
goto loop

:end
Dit werkt ook ja :) *hehe* good old DOS Batch files :)

indien een pc niet reageert kun je dus ook dat WOL stukje implementeren.... dan doen ze het altijd!

DiscVault - Beheer je fysieke schijvencollectie | Beschikbaar als Self-Hosted, iOS (ook TestFlight) en Android (beta).


Verwijderd

Predator schreef op 19 december 2002 @ 16:37:
[
code:
1
if errorlevel X

Dit betekent:
if %errorlevel%>=X
handig idd... (ik zou overigens geen andere exitstatus kunnen bedenken dan 1 bij een find :))

[ Voor 19% gewijzigd door Verwijderd op 19-12-2002 16:44 ]


  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Verwijderd schreef op 19 December 2002 @ 16:42:
[...]handig idd... (ik zou overigens geen andere exitstatus kunnen bedenken dan 1 bij een find :))
Overigens kun je de "find" ook nog weglaten; ping zet zelf een errorlevel alstie geen response krijgt. Dus het .batje wordt:
code:
1
2
3
4
5
6
7
ping %1
if errorlevel 1 goto error
xcopy \\%1\share d:\%1
goto end
:error
echo %1 staat uit !
:end

QnJhaGlld2FoaWV3YQ==


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 16:59

Predator

Suffers from split brain

Brahiewahiewa schreef op 19 December 2002 @ 17:16:
[...]

Overigens kun je de "find" ook nog weglaten; ping zet zelf een errorlevel alstie geen response krijgt. Dus het .batje wordt:
code:
1
2
3
4
5
6
7
ping %1
if errorlevel 1 goto error
xcopy \\%1\share d:\%1
goto end
:error
echo %1 staat uit !
:end

Ja, ping zet zelf een errorlevel, alleen is die ook 0 als je geen reply krijgt.

Everybody lies | BFD rocks ! | PC-specs


  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Predator schreef op 19 december 2002 @ 17:27:
[...]Ja, ping zet zelf een errorlevel, alleen is die ook 0 als je geen reply krijgt.
Mijn ping (winxp) zet dan een errorlevel 1

QnJhaGlld2FoaWV3YQ==


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 16:59

Predator

Suffers from split brain

Brahiewahiewa schreef op 19 december 2002 @ 17:31:
[...]

Mijn ping (winxp) zet dan een errorlevel 1

Mijn ping (win2k ;) ) zet dan een errorlevel 0

Blijkbaar heeft MS ingezien dat dit niet heel logisch is :)

Everybody lies | BFD rocks ! | PC-specs


Verwijderd

lol nog iets nieuws idd... xp geeft een 1 terug... maar aangezien het om win2k gaat :)
Pagina: 1