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-Key: 40480

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

Printed on: April 18, 2024 at 22:04 o'clock

Member: bastla
bastla Sep 19, 2006 at 17:22:55 (UTC)
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
Member: Biber
Biber Sep 20, 2006 at 08:47:55 (UTC)
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
Member: honk82
honk82 Sep 20, 2006 at 09:35:29 (UTC)
Goto Top
Danke für eure Antworten.
Funktioniert alles so wie es soll.

THX