honk82
Goto Top

Ordner im Netz suchen

Hallo @ all

zu erst mal Hallo ich bin ein neuer und noch ein Anfänger in der Batch programmierung.

Hier meine Frage.

Ich möchte eine Anzahl von Rechner in einem Lan auf einen bestimmten Ordner überprüfen und dann ausgeben.

Hier mein bisheriger Ansatz:
for /f %%a in (c:\neu.txt) do call :check
:check
net use w: \\%%a
if exist w:\neu/nul goto TUWAS
print %%a >> nichtgefunden.txt
goto ENDE
:TUWAS
print %%a >> gefunden.txt
:ende

Probleme:

Die Variable a wird nicht im check übernommen und dadurch werden die ip's nicht geprüft.

Wäre dankbar für alle verbesserungs und änderungsvorschläge.

MfG Holger

Content-ID: 40480

Url: https://administrator.de/forum/ordner-im-netz-suchen-40480.html

Ausgedruckt am: 05.04.2025 um 20:04 Uhr

bastla
bastla 19.09.2006 um 19:22:55 Uhr
Goto Top
Hallo Holger!

Vielleicht so:

for /f %%a in (c:\neu.txt) do call :check %%a
goto :eof
:check
net use w: \\%1
if exist w:\neu\nul goto TUWAS
echo %1 >> nichtgefunden.txt
goto :eof
:TUWAS
echo %1 >> gefunden.txt

Beim Aufruf des :check-Teiles wird der Inhalt von %%a als (erster) Parameter übergeben -> %1

Außerdem würde ich auf die Verknüpfung des Netzlaufwerks verzichten und einen UNC-Pfad verwenden bzw. sie zumindest jeweils per /delete-Schalter löschen.

HTH
bastla
Biber
Biber 20.09.2006 um 10:47:55 Uhr
Goto Top
Moin honk82,

ich sehe bastla's Lösung als die richtige an und fände es nett, wenn Du nach dem Testen Deinen Beitrag auf "Gelöst" setzt.

Für unbedingt beachtenswert halte ich den Hinweis "Außerdem würde ich..."

Das könnte dann so ähnlich aussehen:
@echo off
for /f %%a in (c:\neu.txt) do call :check %%a
goto :eof
:check
if exist \\%1\neu\nul (echo %1 >> gefunden.txt)  && goto :eof
echo %1 >> nichtgefunden.txt

Gruß
Biber
honk82
honk82 20.09.2006 um 11:35:29 Uhr
Goto Top
Danke für eure Antworten.
Funktioniert alles so wie es soll.

THX