WK 2026: Scoor de beste deals! Stel jouw winnende opstelling samen met behulp van ons advies.

Batch file opzet

Pagina: 1
Acties:

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
Goedenmiddag,

Ik wil graag een batch file maken die gaat draaien op de 'fileserver' hier. Het is de bedoeling dat deze kijkt of er nog pc's binnen het LAN aanstaan, zo ja: doe niks, zo nee: sluit de pc af. Ik wil dit batch file'tje dan bijv 1 keer in de 5 minuten laten draaien.

Ik zat aan de volgende opzet te denken:
  • Set een var op 0
  • Ping 1 voor 1 de pc's binnen het netwerk af, en set de var op 1 als er een antwoord wordt ontvangen
  • Var op 1=> exit, var op 0=> sluit de pc af
Ik heb alleen geen idee hoe ik de output van het ping commando kan opvangen, en aan de hand van die output een var kan wijzigen. De rest van de zooi moet wel lukken :)

Kan een van jullie mij even in de goede richting wijzen? Ik heb al flink gegoogled, maar dit levert weinig concrete voorbeelden op. Ik vraag niet om de complete code, alleen om een aanpal en wat namen van commando's die ik hiervoor kan gebruiken.

Alvast bedankt!


Lastig in welk subforum dit moet, aangezien hier de meeste batch files topics stonden hier maar neer gezet.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

De output kan je afvangen met FOR. Doe 1 enkele ping en check op het woord 'timed'. Of beter: gebruik het errorlevel. Of nog beter: http://gathering.tweakers...30&select_forum=#hitstart

Bijv. progje voor netwerk bewaking geeft antwoord op dezelfde vraag.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
F_J_K schreef op donderdag 09 augustus 2007 @ 14:21:
De output kan je afvangen met FOR. Doe 1 enkele ping en check op het woord 'timed'. Of beter: gebruik het errorlevel. Of nog beter: http://gathering.tweakers...30&select_forum=#hitstart

Bijv. progje voor netwerk bewaking geeft antwoord op dezelfde vraag.
Aah, thanks! Works like a charm. Dit gaat mij een hoop kilowatts besparen ;)

code:
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
@echo off
echo Ping LAN PC's
echo.
echo.

set pconline=0

echo Checking NEWDELL
echo *(======================)*
PING -n 1 newdell>NUL
IF %ERRORLEVEL% == 1 ECHO NEWDELL is offline. 
IF %ERRORLEVEL% == 0 ECHO NEWDELL is online. 
IF %ERRORLEVEL% == 0 set pconline=1

echo.

echo Checking WHITEDELL
echo *(======================)*
PING -n 1 whitedell>NUL
IF %ERRORLEVEL% == 1 ECHO WHITEDELL is offline.
IF %ERRORLEVEL% == 0 ECHO WHITEDELL is online.
IF %ERRORLEVEL% == 0 set pconline=1

echo.

echo Checking BLACKDELL
echo *(======================)*
PING -n 1 blackdell>NUL
IF %ERRORLEVEL% == 1 ECHO BLACKDELL is offline.
IF %ERRORLEVEL% == 0 ECHO BLACKDELL is online.
IF %ERRORLEVEL% == 0 set pconline=1

echo.

echo Checking HANS
echo *(======================)*
PING -n 1 hans>NUL
IF %ERRORLEVEL% == 1 ECHO HANS is offline.
IF %ERRORLEVEL% == 0 ECHO HANS is online.
IF %ERRORLEVEL% == 0 set pconline=1


IF %pconline% == 0 SHUTDOWN -s -t 10 -c "De fileserver wordt afgesloten omdat alle pc's in het netwerk zijn uitgeschakeld."
IF %pconline% == 1 EXIT

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Yup :)

Open deur: dit gaat natuurlijk fout als er een firewall in de weg zit of als je timeout verkeerd staat. En denk aan het maken van backups, als die 's nachts zouden komen gaat het goed mis :P

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
F_J_K schreef op donderdag 09 augustus 2007 @ 15:44:
Yup :)

Open deur: dit gaat natuurlijk fout als er een firewall in de weg zit of als je timeout verkeerd staat. En denk aan het maken van backups, als die 's nachts zouden komen gaat het goed mis :P
De firewall(s) la(a)t(en) pingen binnen het netwerk altijd door, hij mekkert er igg niet over :) En ik moet idd nog wat verzinnen voor de backups, maar dat komt wel goed.

  • GoT
  • Registratie: Mei 2004
  • Niet online

GoT

/ / ( . Y . ) \ \

Geen idee of je er wat aan hebt....

In de scheduler v/d server heb ik ingesteld:
08:00 t/m 20:00 : Always on
20:00 t/m 08:00 : Minimal Power management
in te stellen met powercfg.exe (Windows 2003)
Hoef je je server niet elke ochtend aan te zetten en backups gaan altijd goed (duren alleen iets langer.)

o << Your asshole before prison.
O << Your asshole after prison.


  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
GoT schreef op donderdag 09 augustus 2007 @ 16:11:
Geen idee of je er wat aan hebt....

In de scheduler v/d server heb ik ingesteld:
08:00 t/m 20:00 : Always on
20:00 t/m 08:00 : Minimal Power management
in te stellen met powercfg.exe (Windows 2003)
Hoef je je server niet elke ochtend aan te zetten en backups gaan altijd goed (duren alleen iets langer.)
Hmm, ik wist niet dat je die ook via de commandline kan wijzigen, ik zal er eens naar kijken. Maar ik heb een klein WOL batchje in de opstartmap van elke pc in het netwerk gezet. Dus de server springt ook gelijk mee aan als een een pc wordt opgestart :)

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
Ik heb nog 1 vraagje, en het is een beetje onzinnig om daarvoor een heel nieuw topic te openen.

Is het ook mogelijk om met een batch file een pagina op internet 'in te laden'. Ik wil bepaalde gegevens naar mijn webserver sturen, en het is een beetje overkill om daarvoor met php in te loggen op de ftp server om de paar gegevens op te halen. Daarom wil ik bijv de volgende pagina opvragen: "domein.com/savedata.php?data=4243&bla=ffds". Als ik met een batch bestand een dergelijke url kan opvragen (ik hoef verder niks met de pagina te doen, alleen een 'hit' genereren op de webserver), krijg ik de data veel effecienter op de webserver.

  • sanderdam
  • Registratie: Maart 2005
  • Laatst online: 07-06 14:16
explorer.exe "http://domein.com/savedata.php?data=4243&bla=ffds" op een nieuw regeltje in je batch filetje?

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
sanderdam schreef op vrijdag 10 augustus 2007 @ 20:15:
explorer.exe "http://domein.com/savedata.php?data=4243&bla=ffds" op een nieuw regeltje in je batch filetje?
Hmm, ja, maar ik was vergeten te vermelden dat het onzichtbaar moet gebeuren. Er draait namelijk ook een mediacenter app op, en het is niet zo praktisch als 1 keer per 5 min een IE window je film doorkruist. Het is ook prima als het geen bat is (liefste wel), maar een exe die de pagina op de achtergrond request.

Edit: Zoiets als dit progje:
Advanced HTTP Request Automaton
Advanced HTTP Request Automaton is a scriptable utility that submits HTTP GET and POST requests to an Internet or Intranet address. The application comes with an XML configuration file that maintains the following information target URI with optional querystring, HTTP request type. Advanced HTTP Request Automaton can be used by Windows Task Scheduler to automate submission of HTTP get and post requests to a specific URI. Version 1.1 may include unspecified updates, enhancements, or bug fixes.

[ Voor 34% gewijzigd door Clock op 10-08-2007 21:15 ]


  • sanderdam
  • Registratie: Maart 2005
  • Laatst online: 07-06 14:16
Maar kun je niet in diezelfde pagina dan in PHP schrijven dat hij die webpagina ook weer moet closen?

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
sanderdam schreef op vrijdag 10 augustus 2007 @ 21:17:
Maar kun je niet in diezelfde pagina dan in PHP schrijven dat hij die webpagina ook weer moet closen?
Met php zal ik geen browser kunnen afsluiten. Met javascript zal het nog wel lukken, maar dat is een hele vieze oplossing die ook nog eens veel meer resources vreet dan nodig.

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
Ik heb het opgelost 8)

Aan het eind van de batchfile maak ik een klein VBscript bestandje die ik vervolgens laat uitvoeren. Dat VBscriptje laadt de webpagina op de achtergrond, en voila.

code:
1
2
3
4
5
ECHO Dim xmlhttp : Set xmlhttp = CreateObject("Microsoft.XMLHTTP") > callserver.vbs
ECHO xmlhttp.Open "GET", "%rapport_url%", false >> callserver.vbs
ECHO xmlhttp.Send >> callserver.vbs

cscript.exe callserver.vbs

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
Goed, we blijven bezig.

Ik ben op zoek naar een manier om vanuit een batch file de beschikbare ruimte op een bepaalde HDD te bekijken en ik een var te krijgen. Dit lijkt simpel, maar na 4 uur googlen heb ik nog niks bruikbaars gevonden. De meest gebruikte manier is een DIR lijst van de HDD op te slaan naar een file, en daar dan het aantal vrije bytes uit te filteren. Dit werkt echter niet met de NL versie van XP, omdat die net iets anders is opgebouwd.

Weet iemand hier een manier voor?

(and again: in vind het geen heel nieuw topic waard, excuses als dit niet gewaardeerd wordt)

  • Clock
  • Registratie: Maart 2005
  • Laatst online: 06:16
Little kick

Verwijderd

kan gewoon via php he :) geen bat voor nodig

  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

nou, dat kun je toch ook met een vbscript maken:
simpel vb:
code:
1
2
3
Set objWMIService = GetObject("winmgmts:")
Set objLogicalDisk = objWMIService.Get("Win32_LogicalDisk.DeviceID='c:'")
Wscript.Echo objLogicalDisk.FreeSpace

euh...ja

Pagina: 1