Batch Datei zur Abfrage von Ip-Adressen
Möchte gerne wissen was ich falsch mache
Hallo Leute,
mein Problem besteht darin das ich folgend Ausgabe erhalte:
Scanne Netzwerk nach Wolperdinger
Wolperdinger ist ausgechaltet.
Scanne Netzwerk nach Sonja
Sonja ist noch on und wird Server
in Ruhezustand schicken
Drücken Sie eine beliebige Taste . . .
obwohl beide Pc´s on sind beide richtige Freigabe haben und auch datei kai.txt in C:\ liegt. Ich versuche es gerade von Sonja-Pc aus.
Hier meine Datei:
@ECHO OFF
:Wolperdinger-Pc
Echo Scanne Netzwerk nach Wolperdinger
IF NOT EXIST \\190.160.170.20\Server_C\Kai.txt GOTO Sonja-Pc
IF EXIST \\190.160.170.20\Server_C\Kai.txt Goto Wolperdinger-Pc_Ende
:Sonja-Pc
echo Wolperdinger ist ausgechaltet.
echo Scanne Netzwerk nach Sonja
IF NOT EXIST \\190.160.170.20\C\Kai.txt GOTO Sonja-Pc_ausgeschaltet
IF EXIST \\190.160.170.20\C\Kai.txt Goto Sonja-Pc_Ende
:Sonja-Pc_ausgeschaltet
echo Sonja ist ausgechaltet.
copy c:\Ausschalten\*.server \\Server-PC\Server_C\Ausschalten\
Goto Ende
:Sonja-Pc_Ende
echo Sonja ist noch on und wird Server
echo in Ruhezustand schicken
Goto Ende
:Wolperdinger-Pc_Ende
echo Wolperdinger ist noch on und wird
echo Server in Ruhezustand schicken
:Ende
Pause
Wie kann mir geholfen werden ?
Mfg Wolperdinger
mein Problem besteht darin das ich folgend Ausgabe erhalte:
Scanne Netzwerk nach Wolperdinger
Wolperdinger ist ausgechaltet.
Scanne Netzwerk nach Sonja
Sonja ist noch on und wird Server
in Ruhezustand schicken
Drücken Sie eine beliebige Taste . . .
obwohl beide Pc´s on sind beide richtige Freigabe haben und auch datei kai.txt in C:\ liegt. Ich versuche es gerade von Sonja-Pc aus.
Hier meine Datei:
@ECHO OFF
:Wolperdinger-Pc
Echo Scanne Netzwerk nach Wolperdinger
IF NOT EXIST \\190.160.170.20\Server_C\Kai.txt GOTO Sonja-Pc
IF EXIST \\190.160.170.20\Server_C\Kai.txt Goto Wolperdinger-Pc_Ende
:Sonja-Pc
echo Wolperdinger ist ausgechaltet.
echo Scanne Netzwerk nach Sonja
IF NOT EXIST \\190.160.170.20\C\Kai.txt GOTO Sonja-Pc_ausgeschaltet
IF EXIST \\190.160.170.20\C\Kai.txt Goto Sonja-Pc_Ende
:Sonja-Pc_ausgeschaltet
echo Sonja ist ausgechaltet.
copy c:\Ausschalten\*.server \\Server-PC\Server_C\Ausschalten\
Goto Ende
:Sonja-Pc_Ende
echo Sonja ist noch on und wird Server
echo in Ruhezustand schicken
Goto Ende
:Wolperdinger-Pc_Ende
echo Wolperdinger ist noch on und wird
echo Server in Ruhezustand schicken
:Ende
Pause
Wie kann mir geholfen werden ?
Mfg Wolperdinger
14 Antworten
- LÖSUNG AndreasHoster schreibt am 15.07.2011 um 16:01:59 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 16:23:00 Uhr
- LÖSUNG 60730 schreibt am 15.07.2011 um 16:29:45 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 16:38:54 Uhr
- LÖSUNG AndreasHoster schreibt am 15.07.2011 um 16:38:55 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 16:53:28 Uhr
- LÖSUNG 60730 schreibt am 15.07.2011 um 16:58:48 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 17:01:09 Uhr
- LÖSUNG 60730 schreibt am 15.07.2011 um 17:02:50 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 17:16:17 Uhr
- LÖSUNG 60730 schreibt am 15.07.2011 um 17:39:44 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 17:42:20 Uhr
- LÖSUNG 60730 schreibt am 15.07.2011 um 17:47:40 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 18:10:53 Uhr
- LÖSUNG 60730 schreibt am 15.07.2011 um 17:47:40 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 17:16:17 Uhr
- LÖSUNG 60730 schreibt am 15.07.2011 um 17:02:50 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 17:01:09 Uhr
- LÖSUNG 60730 schreibt am 15.07.2011 um 16:29:45 Uhr
- LÖSUNG Wolperdinger schreibt am 15.07.2011 um 16:23:00 Uhr
LÖSUNG 15.07.2011 um 16:01 Uhr
Indem man als allererstes, wenn sich ein Batch nicht so verhält wie sie sollte, man das @ECHO OFF rausnimmt, um zu sehen was passiert.
Ich würde dann vor die IF Abfragen noch ein dir \\190.160.170.20\Server_C\Kai.txt (bzw. was auch immer hinterher gestestet wird) reinbauen, um zu sehen, ob der Zugriff auch klappt. Könnten ja noch Rechte Probleme sein, so als Vermutung.
Wenn dann der dir die Datei findet und if immer noch unerwartete Ergebnisse liefert, dann kann man mal weitersehen.
Ich würde dann vor die IF Abfragen noch ein dir \\190.160.170.20\Server_C\Kai.txt (bzw. was auch immer hinterher gestestet wird) reinbauen, um zu sehen, ob der Zugriff auch klappt. Könnten ja noch Rechte Probleme sein, so als Vermutung.
Wenn dann der dir die Datei findet und if immer noch unerwartete Ergebnisse liefert, dann kann man mal weitersehen.
LÖSUNG 15.07.2011 um 16:23 Uhr
Danke für die schnelle Antwort !!!
als ich alles geändert hatte kam folgendes bei raus :
C:\Ausschalten>Echo Scanne Netzwerk nach Wolperdinger
Scanne Netzwerk nach Wolperdinger
C:\Ausschalten>IF NOT EXIST dir\\192.168.178.22\Server_C\Kai.txt GOTO Sonja-
C:\Ausschalten>echo Wolperdinger ist ausgechaltet.
Wolperdinger ist ausgechaltet.
C:\Ausschalten>echo Scanne Netzwerk nach Sonja
Scanne Netzwerk nach Sonja
C:\Ausschalten>IF NOT EXIST dir\\192.168.178.22\C\Kai.txt GOTO Sonja-Pc_ausg
altet
C:\Ausschalten>echo Sonja ist ausgechaltet.
Sonja ist ausgechaltet.
C:\Ausschalten>copy c:\Ausschalten\*.server \\Server-PC\Server_C\Ausschalten
c:\Ausschalten\Ruhezustand.server
Der Netzwerkpfad wurde nicht gefunden.
0 Datei(en) kopiert.
C:\Ausschalten>Goto Ende
C:\Ausschalten>Pause
Drücken Sie eine beliebige Taste . . .
Zur Erklärung was ich erreichen will das mein Pc im Netzwerk nach laufenden Pc´s sucht und falls nicht der die Datei auf meinen Server kopiert die Auslöser dafür ist das dieser sich in den Ruhezustand versetzt.
Ach ja so am rande alle Pc´s laufen unter Windows 7 Ultimate x64 auch der Server ich weiß das es nur ein gefakter Server ist und das dieser normal immer laufen soll doch als File und Media Server ist das so Kostengünstiger
Mfg Wolperdinger
als ich alles geändert hatte kam folgendes bei raus :
C:\Ausschalten>Echo Scanne Netzwerk nach Wolperdinger
Scanne Netzwerk nach Wolperdinger
C:\Ausschalten>IF NOT EXIST dir\\192.168.178.22\Server_C\Kai.txt GOTO Sonja-
C:\Ausschalten>echo Wolperdinger ist ausgechaltet.
Wolperdinger ist ausgechaltet.
C:\Ausschalten>echo Scanne Netzwerk nach Sonja
Scanne Netzwerk nach Sonja
C:\Ausschalten>IF NOT EXIST dir\\192.168.178.22\C\Kai.txt GOTO Sonja-Pc_ausg
altet
C:\Ausschalten>echo Sonja ist ausgechaltet.
Sonja ist ausgechaltet.
C:\Ausschalten>copy c:\Ausschalten\*.server \\Server-PC\Server_C\Ausschalten
c:\Ausschalten\Ruhezustand.server
Der Netzwerkpfad wurde nicht gefunden.
0 Datei(en) kopiert.
C:\Ausschalten>Goto Ende
C:\Ausschalten>Pause
Drücken Sie eine beliebige Taste . . .
Zur Erklärung was ich erreichen will das mein Pc im Netzwerk nach laufenden Pc´s sucht und falls nicht der die Datei auf meinen Server kopiert die Auslöser dafür ist das dieser sich in den Ruhezustand versetzt.
Ach ja so am rande alle Pc´s laufen unter Windows 7 Ultimate x64 auch der Server ich weiß das es nur ein gefakter Server ist und das dieser normal immer laufen soll doch als File und Media Server ist das so Kostengünstiger
Mfg Wolperdinger
LÖSUNG 15.07.2011 um 16:29 Uhr
moin,
das ist ja grottig...
und das ungetestet
Gruß
edit for /f doch nötig? mein Mäc kennt keine Pätche ...
btw: einen Ordner log sollte dein c:\ auch haben, ich mag keine "leichen auf dembroot...."
das ist ja grottig...
IF NOT EXIST \\190.160.170.20\Server_C\Kai.txt GOTO Sonja-Pc
IF EXIST \\190.160.170.20\Server_C\Kai.txt Goto Wolperdinger-Pc_Ende
IF EXIST \\190.160.170.20\Server_C\Kai.txt Goto Wolperdinger-Pc_Ende
und das ungetestet
if exist c:\log\serverstatus.log del c:\log\serverstatus.log
for /f %%a in (190.160.170.20,192.168.178.22) do (
title Teste IP %%a
if not exist "\\%%a\c$" echo %%a ist offline>>c:\log\serverstatus.log
)
if exist c:\log\serverstatus.log type c:\log\serverstatus.log & pause
edit for /f doch nötig? mein Mäc kennt keine Pätche ...
btw: einen Ordner log sollte dein c:\ auch haben, ich mag keine "leichen auf dem
LÖSUNG 15.07.2011 um 16:38 Uhr
Danke für die schnelle Hilfe
das war die Antwort des pc´s :
C:\Users\Kai\Desktop>test
C:\Users\Kai\Desktop>if exist c:\log\serverstatus.log del c:\log\serverstatus.lo
g
C:\Users\Kai\Desktop>%a in (190.160.170.20,190.160.170.22) do (
Der Befehl "%a" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\Kai\Desktop>title Teste IP %a
C:\Users\Kai\Desktop>if not exist "\\%a\c$" echo %a ist offline 1>>c:\log\serve
rstatus.log
Das System kann den angegebenen Pfad nicht finden.
C:\Users\Kai\Desktop>if exist c:\log\serverstatus.log type c:\log\serverstatus.l
og & pause
C:\Users\Kai\Desktop>
das war die Antwort des pc´s :
C:\Users\Kai\Desktop>test
C:\Users\Kai\Desktop>if exist c:\log\serverstatus.log del c:\log\serverstatus.lo
g
C:\Users\Kai\Desktop>%a in (190.160.170.20,190.160.170.22) do (
Der Befehl "%a" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\Kai\Desktop>title Teste IP %a
C:\Users\Kai\Desktop>if not exist "\\%a\c$" echo %a ist offline 1>>c:\log\serve
rstatus.log
Das System kann den angegebenen Pfad nicht finden.
C:\Users\Kai\Desktop>if exist c:\log\serverstatus.log type c:\log\serverstatus.l
og & pause
C:\Users\Kai\Desktop>
LÖSUNG 15.07.2011 um 16:38 Uhr
@Timo: Schöne Lösung.
Aber weiter zum Thema prinzipielles Debuggen von Skripten:
Ich meinte sowas:
Weil ich sehe in Deiner Ausgabe Fehler wie:
Der Netzwerkpfad wurde nicht gefunden.
0 Datei(en) kopiert.
Da liegt die Vermutung nahe, daß auch der Rest eventuell nicht ganz richtig ist.
Aber weiter zum Thema prinzipielles Debuggen von Skripten:
Ich meinte sowas:
dir \\190.160.170.20\Server_C\Kai.txt
IF NOT EXIST \\190.160.170.20\Server_C\Kai.txt GOTO Sonja-Pc
Der Netzwerkpfad wurde nicht gefunden.
0 Datei(en) kopiert.
Da liegt die Vermutung nahe, daß auch der Rest eventuell nicht ganz richtig ist.
LÖSUNG 15.07.2011 um 16:53 Uhr
Danke für die schnelle antworten
C:\Windows\system32>Echo Scanne Netzwerk nach Wolperdinger
Scanne Netzwerk nach Wolperdinger
C:\Windows\system32>dir \\190.160.170.20\Server_C\Kai.txt
Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort.
C:\Windows\system32>IF NOT EXIST \\190.160.170.20\Server_C\Kai.txt GOTO Sonja-Pc
C:\Windows\system32>echo Wolperdinger ist ausgechaltet.
Wolperdinger ist ausgechaltet.
C:\Windows\system32>echo Scanne Netzwerk nach Sonja
Scanne Netzwerk nach Sonja
C:\Windows\system32>dir \\190.160.170.26\C\Kai.txt
Volume in Laufwerk \\190.160.170.26\C: hat keine Bezeichnung.
Volumeseriennummer: xxxx-xxxx
Verzeichnis von \\190.160.170.26\C
15.07.2011 15:09 0 Kai.txt
1 Datei(en), 0 Bytes
0 Verzeichnis(se), 274.391.834.624 Bytes frei
C:\Windows\system32>IF NOT EXIST \\190.160.170.26\C\Kai.txt GOTO Sonja-Pc_ausges
chaltet
C:\Windows\system32>IF EXIST \\190.160.170.26\C\Kai.txt Goto Sonja-Pc_Ende
C:\Windows\system32>echo Sonja ist noch on und wird Server
Sonja ist noch on und wird Server
C:\Windows\system32>echo in Ruhezustand schicken
in Ruhezustand schicken
C:\Windows\system32>Goto Ende
C:\Windows\system32>Pause
Drücken Sie eine beliebige Taste . . .
woran kann das mit den rechten liegen?
mfg Wolperdinger
C:\Windows\system32>Echo Scanne Netzwerk nach Wolperdinger
Scanne Netzwerk nach Wolperdinger
C:\Windows\system32>dir \\190.160.170.20\Server_C\Kai.txt
Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort.
C:\Windows\system32>IF NOT EXIST \\190.160.170.20\Server_C\Kai.txt GOTO Sonja-Pc
C:\Windows\system32>echo Wolperdinger ist ausgechaltet.
Wolperdinger ist ausgechaltet.
C:\Windows\system32>echo Scanne Netzwerk nach Sonja
Scanne Netzwerk nach Sonja
C:\Windows\system32>dir \\190.160.170.26\C\Kai.txt
Volume in Laufwerk \\190.160.170.26\C: hat keine Bezeichnung.
Volumeseriennummer: xxxx-xxxx
Verzeichnis von \\190.160.170.26\C
15.07.2011 15:09 0 Kai.txt
1 Datei(en), 0 Bytes
0 Verzeichnis(se), 274.391.834.624 Bytes frei
C:\Windows\system32>IF NOT EXIST \\190.160.170.26\C\Kai.txt GOTO Sonja-Pc_ausges
chaltet
C:\Windows\system32>IF EXIST \\190.160.170.26\C\Kai.txt Goto Sonja-Pc_Ende
C:\Windows\system32>echo Sonja ist noch on und wird Server
Sonja ist noch on und wird Server
C:\Windows\system32>echo in Ruhezustand schicken
in Ruhezustand schicken
C:\Windows\system32>Goto Ende
C:\Windows\system32>Pause
Drücken Sie eine beliebige Taste . . .
woran kann das mit den rechten liegen?
mfg Wolperdinger
LÖSUNG 15.07.2011 um 16:58 Uhr
nö, noch grottiger, wobei mir in seinem output das ganze for fehlt...
C:\Users\Kai\Desktop>%a in (190.160.170.20,190.160.170.22) do (
190.160 und 192.168 ist doch irgendwie....????
ungetestet
if not exist c:\servercheck md c:\servercheck
if exist c:\servercheck\kisten.ini goto :ready4check
echo 190.160.170.20 Sonja>c:\servercheck\kisten.ini
echo 192.168.178.22 Wolperdingers verschreiberling>>c:\servercheck\kisten.ini
:ready4check
FOR /f "tokens=1,2" %%a in (c:\servercheck\kisten.ini) do (
if not exist "\\%%a\c$" echo %%b ist offline>>c:\servercheck\status.log
)
/ungetestet
LÖSUNG 15.07.2011 um 17:01 Uhr
LÖSUNG 15.07.2011 um 17:02 Uhr
Zitat von @Wolperdinger:
hallo timo beil
mein Problem ist das ich sehr sehr wenig Anhung habe und viel tun will#
hallo timo beil
mein Problem ist das ich sehr sehr wenig Anhung habe und viel tun will#
ähh aber stimmen denn die Ips? 190 und 192?
und mit %a kann der output nicht angefangen haben, außer du hast wirklich vor dafor vergessen
mfg Wolperdinger
LÖSUNG 15.07.2011 um 17:16 Uhr
Danke für die schnelle antwort
bei mir sind beide 192.000.000.000 habe die 192 vergessen umzuschreiben
das hat er gerade ausgespuckt:
C:\Windows\system32>if not exist c:\servercheck md c:\servercheck
C:\Windows\system32>if exist c:\servercheck\kisten.ini goto ready4check
C:\Windows\system32>FOR /F "tokens=1,2" %a in (c:\servercheck\kisten.ini) do (if
not exist "\\%a\c$" echo %b ist offline 1>>c:\servercheck\status.log )
C:\Windows\system32>(if not exist "\\Kisten.ini\c$" echo ist offline 1>>c:\se
rvercheck\status.log )
C:\Windows\system32>pause
Drücken Sie eine beliebige Taste . . .
C:\Users\Kai\Desktop>pause
Drücken Sie eine beliebige Taste . . .
nun habe ich noch ein problemm wenn beide aus sind soll er ja commando :
copy c:\Ausschalten\*.server \\Server-PC\Server_C\Ausschalten\
ausführen wo baue ich die ein?
Mfg wolperdinger
bei mir sind beide 192.000.000.000 habe die 192 vergessen umzuschreiben
das hat er gerade ausgespuckt:
C:\Windows\system32>if not exist c:\servercheck md c:\servercheck
C:\Windows\system32>if exist c:\servercheck\kisten.ini goto ready4check
C:\Windows\system32>FOR /F "tokens=1,2" %a in (c:\servercheck\kisten.ini) do (if
not exist "\\%a\c$" echo %b ist offline 1>>c:\servercheck\status.log )
C:\Windows\system32>(if not exist "\\Kisten.ini\c$" echo ist offline 1>>c:\se
rvercheck\status.log )
C:\Windows\system32>pause
Drücken Sie eine beliebige Taste . . .
C:\Users\Kai\Desktop>pause
Drücken Sie eine beliebige Taste . . .
nun habe ich noch ein problemm wenn beide aus sind soll er ja commando :
copy c:\Ausschalten\*.server \\Server-PC\Server_C\Ausschalten\
ausführen wo baue ich die ein?
Mfg wolperdinger
LÖSUNG 15.07.2011 um 17:39 Uhr
*hüstel...
jetzt hast du es geschafft......
ich hab nen VPN RDP auf ne Kisten im Schuppen aufgemacht und...
ein Anschliessendes
Zeigt mir, entweder hab ich am Mac doch kein Pätscheln verlernt, oder was anderes läuft da mächtig schief...
Apropos Schief, ich schliesse mich Andreas an, bugfixxse das bitte selber auseinander sonst werd ich noch ganz schief gewickelt...
Apropos wickeln ich kümmer mich um was anderes....
Gruß
jetzt hast du es geschafft......
ich hab nen VPN RDP auf ne Kisten im Schuppen aufgemacht und...
C:\>if not exist c:\servercheck md c:\servercheck
C:\>if exist c:\servercheck\kisten.ini goto :ready4check
C:\>echo 190.160.170.20 Sonja 1>c:\servercheck\kisten.ini
C:\>echo 192.168.178.22 Wolperdingers verschreiberling 1>>c:\servercheck\kisten.
ini
C:\>FOR /F "tokens=1,2" %a in (c:\servercheck\kisten.ini) do (if not exist "\\%a
\c$" echo %b ist offline 1>>c:\servercheck\status.log )
C:\>(if not exist "\\190.160.170.20\c$" echo Sonja ist offline 1>>c:\serverchec
k\status.log )
C:\>(if not exist "\\192.168.178.22\c$" echo Wolperdingers ist offline 1>>c:\se
rvercheck\status.log )
C:\>
C:\>type C:\servercheck\status.log
Sonja ist offline
Wolperdingers ist offline
C:\>
Apropos Schief, ich schliesse mich Andreas an, bugfixxse das bitte selber auseinander sonst werd ich noch ganz schief gewickelt...
Apropos wickeln ich kümmer mich um was anderes....
Gruß
LÖSUNG 15.07.2011 um 17:42 Uhr
LÖSUNG 15.07.2011 um 17:47 Uhr
Zitat von @Wolperdinger:
fehler von mir dafür gibts ja log datei aber erhalte status datei obwohl beie kiste on sind
mfg wolperdinger
fehler von mir dafür gibts ja log datei aber erhalte status datei obwohl beie kiste on sind
mfg wolperdinger
mea culpa, meine Tochter wird bald 2 Jahre und die brabbelt deutlicher....
LÖSUNG 15.07.2011 um 18:10 Uhr
also ich habe insgesamt 4 Pc´s. Davon möchte ich mit 2 Pc´s 1 Laptop den 4. Pc meinen Pseudo Server anwerfen und später wieder in den Ruhezustand versetzen. Shutdown und psshutdown gehen nur auf lokal deswegen der ganze Aufwand. Das mit der ip Abfragerei (Datei) ist mir halt so eingefallen weil ich nix besseres wußte. Und selbst wenn das klappt wie bekomme ich diese Datei mit dem herunterfahren butten in Windows verknüpft? das ist das ganze Problem wo ich habe. zu vorhin da wollte ich fragen wo ich Comando: copy c:\Ausschalten\*.server \\Server-PC\Server_C\Ausschalten\ einfügen soll doch dann habe ich das mit der log Datei gesehen.die aber auch nicht auf den Computer sondern ja auf Pseudo Server soll. Weil mein Server geht in den Ruhezustand wenn er bis jetzt Datei "Ruhezustand.Server" erhält. Deswegen auch der Kopiervorgang in meiner Batch.
mfg Wolperdinger
mfg Wolperdinger