Schleife mit Exist
Hallo an alles fleißigen Scripter,
ein Script soll eine Range von IPs abfragen und checken, ob ein bestimmtes Verzeichnis existiert, leider geht nicht so wie ich mir das vorgestellt habe, Wie muss es richtig heißen?
@echo off
for /l %%f in (170, 1, 173) do :Check
PAUSE
:Check
if exist \\192.168.100.%ff\c$\xy\ echo available xy
ELSE GOTO end
:end
PAUSE
Liebe Grüße Chris
ein Script soll eine Range von IPs abfragen und checken, ob ein bestimmtes Verzeichnis existiert, leider geht nicht so wie ich mir das vorgestellt habe, Wie muss es richtig heißen?
@echo off
for /l %%f in (170, 1, 173) do :Check
PAUSE
:Check
if exist \\192.168.100.%ff\c$\xy\ echo available xy
ELSE GOTO end
:end
PAUSE
Liebe Grüße Chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 444261
Url: https://administrator.de/forum/schleife-mit-exist-444261.html
Ausgedruckt am: 27.12.2024 um 01:12 Uhr
18 Kommentare
Neuester Kommentar
Moinsens.
why the hell kommst du auf %ff??
Tschö.
https://ss64.com/nt/for.html
https://ss64.com/nt/call.html (Abschnitt: CALL a subroutine (:label))
why the hell kommst du auf %ff??
@echo off
for /l %%f in (170, 1, 173) do call :Check %%f
PAUSE
goto :eof
:Check
if exist "\\192.168.100.%1\c$\xy" echo xy available on 192.168.100.%1
Wie muss es richtig heißen?
Man braucht es eigentlich nur nachlesen https://ss64.com/nt/for.html
https://ss64.com/nt/call.html (Abschnitt: CALL a subroutine (:label))
%%a ja aber nicht %ff wie du oben ausgeschrieben hast!
Ohne Subroutine sieht das so aus, dann kannst du auch direkt mit %%f arbeiten:
die an vierter Stelle der IP durchlaufen wird, geht bei mir sonst auch immer ?!?
Du beendest die Schleife bereits in Zeile 2 und du übergibst %%f ja gar nicht an die Subroutine :Check, und in der Unterroutine wird der Parameter mit %1 angespochen!Ohne Subroutine sieht das so aus, dann kannst du auch direkt mit %%f arbeiten:
for /l %%f in (170, 1, 173) do (
if exist "\\192.168.100.%%f\c$\xy" echo xy available on 192.168.100.%%f
)
na vielleicht was vergessen oder
Klaaaaaaaar ....
Selbst verständlich, einfach in der If Condition den else Teil hinzufügen
Das kannst du jetzt auch selbst
https://ss64.com/nt/if.html
Ansonsten am Freitag nochmal kommen.
Das kannst du jetzt auch selbst
https://ss64.com/nt/if.html
Ansonsten am Freitag nochmal kommen.
Zitat von @casi4711:
Was natürlich noch schön wäre, wenn er mir sagt, wenn ein Server nicht erreichbar ist und dann nicht einfach, Verzeichnis vorhanden, geht das?
Guckst du dir Links, die man dir gibt, eigentlich auch mal an? https://ss64.com/nt/if.htmlWas natürlich noch schön wäre, wenn er mir sagt, wenn ein Server nicht erreichbar ist und dann nicht einfach, Verzeichnis vorhanden, geht das?
Ping
Suchfunktion bei dir im A....? Heut is Donnerstag nicht Freitag.
p.s. wenn du dabei bist, mach doch nochmal neuen Kaffee. Danke.
Suchfunktion bei dir im A....? Heut is Donnerstag nicht Freitag.
p.s. wenn du dabei bist, mach doch nochmal neuen Kaffee. Danke.
Erkenntnis über die Sterukltur von If Else Schleifen bringt mich da nicht unbedingt weiter.
Absoluter Blödsinn sorry.Du hast den dir gegebenen Artikel einfach überhaupt nicht bis zu Ende gelesen, denn dort hättest du lesen können das Klammern vor und hinter Else in einer Zeile stehen müssen und zwischen dem Wort Else und den Klammern mindestens ein Leerzeichen stehen muss!
Außerdem ist das zweite if stuss und vollkommen überflüssig, wofür gibt es wohl das if else?!
vielleicht brauche ich ja eine Brille
Die brauchst du in der Tat und zwar um meine Posts und unsere dir gegebenen Links richtig zu lesen, denn mehr hättest du nicht gebraucht..Außerdem habe ich dir oben den Link zum Ping geschickt dem du offensichtlich auch nicht gefolgt bist denn ein if exist ist nicht geeignet um festzustellen ob ein Rechner an ist oder nicht, nur ob ein Verzeichnis existiert oder nicht, das sagt aber nicht aus das ein Rechner nicht an ist, ein Ping zwar auch nicht wenn die Firewall blockt, aber davon fange ich befindet gar nicht erst an, das führt eh zu nichts.
Also JA, du brauchst dringend eine Brille!
@echo off
set "NET=192.168.100"
for /l %%f in (22, 1, 255) do (
ping -n 1 %NET%.%%f | findstr /i "TTL" >nul 2>&1 && (
if exist "\\%NET%.%%f\c$\Program Files (x86)\xy" (
echo %NET%.%%f xy vorhanden
) else (
echo %NET%.%%f xy nicht vorhanden, oder Freigabe geblockt.
)
) || (
echo %NET%.%%f not responding to ping.
)
)
PAUSE
Als denn, frohes Copy n' Paste noch.
P.s. Versuchs mal ab und zu mit Manual lesen.
Btw. ist Batch was aus dem letzten Jahrhundert, heute nutzt man wenn schon Winblows, Powershell falls du das in deiner Höhle als Administrator als den du dich hier ausgibst, verpasst haben solltest.
Und tschüss.
Zitat von @139374:
Moinsens.
why the hell kommst du auf %ff??
Tschö.
https://ss64.com/nt/for.html
https://ss64.com/nt/call.html (Abschnitt: CALL a subroutine (:label))
Moinsens.
why the hell kommst du auf %ff??
> @echo off
> for /l %%f in (170, 1, 173) do call :Check %%f
> PAUSE
> goto :eof
> :Check
> if exist "\\192.168.100.%1\c$\xy" echo xy available on 192.168.100.%1
>
Wie muss es richtig heißen?
Man braucht es eigentlich nur nachlesen https://ss64.com/nt/for.html
https://ss64.com/nt/call.html (Abschnitt: CALL a subroutine (:label))
Ein Grund warum ich Batch hasse. Unlogisch, nichts sagende Kürzel.... Boahhhhh!!! Ein Salut an jeden der sich das antut / antun kann!
Behaupte ja nicht dass VBS besser wäre, da gibt's aber wenigstens ein klein wenig "Object-Orientiert" Der aktuell Favorit ist PowerShell. Ab v3 GsD nicht mehr buggy. Oder C#
Meine Rede, aber versuch das mal den Kandidaten hier klar zu machen. Der Batch Krampf ist wie Windows selbst so in die Köpfe vieler eingebrannt das sie nicht mal mehr über den Tellerand schauen können.
Wer mit 25 noch Tretroller mit Stützrädern fährt, lernt es halt nicht mehr auf das Fahrrad umzusteigen wenn die Lernbereitschaft nicht da ist.
Wer mit 25 noch Tretroller mit Stützrädern fährt, lernt es halt nicht mehr auf das Fahrrad umzusteigen wenn die Lernbereitschaft nicht da ist.
Zitat von @139374:
Meine Rede, aber versuch das mal den Kandidaten hier klar zu machen. Der Batch Krampf ist wie Windows selbst so in die Köpfe vieler eingebrannt das sie nicht mal mehr über den Tellerand schauen können.
Wer mit 25 noch Tretroller mit Stützrädern fährt, lernt es halt nicht mehr auf das Fahrrad umzusteigen wenn die Lernbereitschaft nicht da ist.
Meine Rede, aber versuch das mal den Kandidaten hier klar zu machen. Der Batch Krampf ist wie Windows selbst so in die Köpfe vieler eingebrannt das sie nicht mal mehr über den Tellerand schauen können.
Wer mit 25 noch Tretroller mit Stützrädern fährt, lernt es halt nicht mehr auf das Fahrrad umzusteigen wenn die Lernbereitschaft nicht da ist.
Dafür gibts glatt ein Herzchen!