wolperdinger
Goto Top

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

Content-ID: 169829

Url: https://administrator.de/contentid/169829

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

AndreasHoster
AndreasHoster 15.07.2011 um 16:01:59 Uhr
Goto Top
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.
Wolperdinger
Wolperdinger 15.07.2011 um 16:23:00 Uhr
Goto Top
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
60730
60730 15.07.2011 um 16:29:45 Uhr
Goto Top
moin,

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

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

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 dem broot...."
Wolperdinger
Wolperdinger 15.07.2011 um 16:38:54 Uhr
Goto Top
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>
AndreasHoster
AndreasHoster 15.07.2011 um 16:38:55 Uhr
Goto Top
@Timo: Schöne Lösung.

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
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.
Wolperdinger
Wolperdinger 15.07.2011 um 16:53:28 Uhr
Goto Top
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
60730
60730 15.07.2011 um 16:58:48 Uhr
Goto Top
Zitat von @AndreasHoster:
@Timo: Schöne Lösung.

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 (
anyway...

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   
)

prinzipiell wäre alles vor :ready4check nach dem ersten Lauf unnötig, aber die Ips können nicht wirklich stimmen...

/ungetestet
Wolperdinger
Wolperdinger 15.07.2011 um 17:01:09 Uhr
Goto Top
hallo timo beil
mein Problem ist das ich sehr sehr wenig Anhung habe und viel tun will

und das mit den ip´s ist nur weil ich die ändern wollte. damit keiner Unsinn damit macht

mfg Wolperdinger
60730
60730 15.07.2011 um 17:02:50 Uhr
Goto Top
Zitat von @Wolperdinger:
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 face-wink

mfg Wolperdinger
Wolperdinger
Wolperdinger 15.07.2011 um 17:16:17 Uhr
Goto Top
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
60730
60730 15.07.2011 um 17:39:44 Uhr
Goto Top
*hüstel...

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:\>
ein Anschliessendes
C:\>type C:\servercheck\status.log
Sonja ist offline
Wolperdingers ist offline

C:\>

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ß
Wolperdinger
Wolperdinger 15.07.2011 um 17:42:20 Uhr
Goto Top
fehler von mir dafür gibts ja log datei aber erhalte status datei obwohl beie kiste on sind . ich check das ganze nicht auch egal werde dann mal eher an ne hardwareumsetzung gehen müßen egal.

mfg wolperdinger
60730
60730 15.07.2011 um 17:47:40 Uhr
Goto Top
Zitat von @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....
Wolperdinger
Wolperdinger 15.07.2011 um 18:10:53 Uhr
Goto Top
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