[DOS/WinXP]Kopieren aan de hand van een ping reply

Pagina: 1
Acties:

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:53
Hallo.
Voor mijn laptop ben ik bezig om een klein scriptje te schrijven wat kijkt of de server een ping reply geeft. En als dit zo is een map met bestanden kopieert. Dit is om bestanden te kopieren van de laptop naar de server. Maar als ik ergens ben wil ik niet dat m'n bestanden worden gesynchroniseerd.
Vandaar dat ik ook ping op naam in plaats van IP adres (PC naam is een naam die maar 1x voorkomt in de wereld ;), en het IP adres kan iedereen hebben (is een internet LAN ip 192.168.2.xx)

Ik heb nu dit:
ping -n 1 SERVER |find /i "reply from"
copy \\SERVER\test.txt D:\
Maar nu wil ik nog wat extra meldingen definieren zoals "Bronhost niet gevonden, kopieren gestaakt" of "Kopieren voltooid"

Hoe doe ik dit? Ik zat bij die eerste te denken aan errorlevels ofzo

(Dat wat ik nu heb, heb ik uit een topic hier ergens gejat O-) , en wat aangepast, dus kan best dat er wat niet klopt :) )

  • max
  • Registratie: Juni 2001
  • Niet online

max

a.k.a. Bezwaarbaard

Ga je onder dos kopieren of vanuit een commandprompt?

Bald by design, beard by choice.

Inzien dat je iets niet weet, is belangrijker dan alles weten.


  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:53
max schreef op maandag 19 februari 2007 @ 19:02:
Ga je onder dos kopieren of vanuit een commandprompt?
vanuit een .cmd bestand :) (commandprompt dus :) )

Het script werkt nu ook wel, maar ik wil dat als hij de server niet kan vinden, dat ik dan een melding krijg. En als het kopieren klaar is ook een melding (een die na 4sec weer weg is ofzo, geen "druk een toets" ding :S )

[ Voor 34% gewijzigd door ThinkPad op 19-02-2007 19:49 ]


  • Raven
  • Registratie: November 2004
  • Niet online

Raven

Marion Raven fan

ThinkPadd schreef op maandag 19 februari 2007 @ 19:48:
[...]


vanuit een .cmd bestand :) (commandprompt dus :) )

Het script werkt nu ook wel, maar ik wil dat als hij de server niet kan vinden, dat ik dan een melding krijg. En als het kopieren klaar is ook een melding (een die na 4sec weer weg is ofzo, geen "druk een toets" ding :S )
if/then of "case of" lusje? (zoals in pascal, maar dan voor cmd)

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


  • Fairy
  • Registratie: Januari 2001
  • Niet online

Fairy

13kWp

Als je de server boot geeft ie al een ping ruim voordat de fileshare service is gestart. Hoe ga je dat ondervangen?

Vind het een beetje vage constructie....

Verwijderd

waarom gebruik je geen VBscript?

[ Voor 56% gewijzigd door Verwijderd op 19-02-2007 20:04 ]


  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:53
Omdat ik niet precies weet hoe dat moet. Als er alternatieven zijn dan mag dat ook.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Dit is niet echt een vraag die in CSA past; daarom verhuis ik hem naar WOS; daar past hij wat beter. Overigens denk ik dat je beter een andere taal kunt vinden om dit te doen; zeker als je nog enige interactie wil. Daarnaast zie ik momenteel in je screen geen enkele afhankelijkheid tussen je ping; en de kopieer actie?

CSA > WOS

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • FirmPete
  • Registratie: Juli 2001
  • Niet online
ThinkPadd schreef op maandag 19 februari 2007 @ 18:30:
... Dit is om bestanden te kopieren van de laptop naar de server.
copy \\SERVER\test.txt D:\ doet helemaal niks omdat er geen sharenaam instaat, bovendien probeert ie iets van je server naar de D:\ schijf te kopieren. Je bedoelt iets als copy d:\test.txt \\server\share\
... Maar als ik ergens ben wil ik niet dat m'n bestanden worden gesynchroniseerd....
Ik neem aan dat je bedoelt dat als de server niet bereikbaar is hij niet moet gaan kopieren?
Hoe doe ik dit? Ik zat bij die eerste te denken aan errorlevels ofzo
Je krijgt dan zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
echo off
ping -n 1 server | find /i "reply from"
set err=%errorlevel%
if %err%==0 goto welping
if %err%==1 goto geenping
goto eind
rem
:welping
echo Ping reply received!
copy d:\test.txt \\server\share\
goto eind
rem
:geenping
echo Server not responding!
pause
:eind


Maar zoals boven mij gezegd, in vbs kan je dit veel beter maken, heb je niet zo'n zwart venster ook. Voor de rest wordt het snel brei omdat je heel beperkt bent in je if statements.

Als je begint met batch programmeren zou ik lekker naar vbscript kijken. Zijn veel meer voorbeelden van te vinden ook. Zoek eens op www.microsoft.com naar vbscript bv.

Firmpete on Aerie Peak


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Daarnaast heeft Windows al enige tijd synchronisatie van offline bestanden ingebakken zitten en zijn er zeer veel backup pakketten die dit ook kunnen. Wellicht is dat handiger om mee te beginnen? Aan je begincode te zien gaat het je namelijk niet om de batch-ervaring zelf; of ben ik daarin abuis?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:53
FirmPete schreef op maandag 19 februari 2007 @ 20:32:
[...]
Ik neem aan dat je bedoelt dat als de server niet bereikbaar is hij niet moet gaan kopieren?
Ja precies, dit scriptje moet gewoon draaien @ logon/startup, zodat al m'n school documenten worden gekopieerd naar de server (als backup). Maar als ik ergens anders ben wil ik niet dat dit gebeurd omdat dan mijn documenten op hun PC/Server terecht komen.

Daarom vraag ik mij af of dat "SERVER" wel gewoon werkt. Want straks resolved hij gewoon het IP adres daarvan en dan kopieert hij het alsnog naar de verkeerde plek. :o


Bedankt allemaal.
Het script van FirmPete heb ik nu gebruikt en een beetje aangepast.
Maar het werkt nog niet helemaal :S

Ik krijg steeds "Server not responding"
Terwijl als ik met CMD ga pingen, dan lukt het wel :?
echo off
ping -n 1 SERVER | find /i "reply from" >> "Antwoord van"
set err=%errorlevel%
if %err%==0 goto welping
if %err%==1 goto geenping
goto eind
rem
:welping
echo Ping reply received!
copy D:\School \\Server\Frank\School-laptop
goto eind
rem
:geenping
echo Server not responding!
pause
:eind
Oke nu werkt het wel, maar nog steeds niet helemaal. De bestanden kopieert hij nu, maar de mappen moeten ook (mappen waar bestanden inzitten)

[ Voor 43% gewijzigd door ThinkPad op 19-02-2007 22:00 ]


  • FirmPete
  • Registratie: Juli 2001
  • Niet online
doe eens in eens cmd-boxje xcopy /? Daarmee kan je wel folders meenemen.

xcopy bron doel /s /e moet je eens mee spelen.

Maar serieus, cmd - 'dos' -scripting moet je aan bejaarden overlaten, d'r zijn tegenwoordig veel betere en mooiere tools voor.

Firmpete on Aerie Peak

Pagina: 1