o.cobi Geschrieben 28. Januar 2013 Geschrieben 28. Januar 2013 Hallo Leute, hoffe ich bin hier richtig mit dem Thema. Ich habe eine .txt Liste mit ca. 170 Computernamen. Diese Computer sollen zunächst angepingt werden. Ist der ping erfolgreich, soll eine bestimmte datei (immer die gleiche datei, immer im gleichen pfad) in einen bestimmten (ebenfalls immer der gleiche) pfad kopiert werden. mein Pseudocode würde so aussehen: ____________________________________ Schritt 1 öffne Liste.txt Schritt 2 Zähle alle Zeilen von Liste.txt Anzahl in "Serveranzahl" packen Schritt 3 Zählschleife i = 1 (bzw. Inhalt von Zeile), solange i < "Serveranzahl", i = i+1 ping i wenn i = errorlevel=1 (erreichbar) dann kopiere testdatei nach i\C$ wenn i errorlevel=1 (nicht erreichbar) schreibe i in Fehlerdatei.txt ___________________________________________ Er soll also die Liste.txt zeilenweise durchgehen, jeder Zeile den Namen entnehmen diesen Namen anpingen, und wenn er erreichbar ist die Datei kopieren. Wenn der selbige Name nicht erreichbar ist, soll er ihn in eine Fehlerlog datei schreiben. Ich wüsste schon das ganze zu realisieren, nur leider schaffe ich es nur, dass immer nur der erste Computer aus der Liste genommen wird.. Krieg die schleife nicht hin, in dem die Liste durchgegangen wird. Hoffe einer kann mir da helfen... Hier mein bisheriger Code: ___________________________________________ @echo off set /p Name=<C:\Users\user1\Desktop\Liste.txt ping %Name% -n 2 -w 1000 -l 2000 if %errorlevel%==1 echo %Name%>C:\Users\user1\Desktop\fehlerliste.txt if %errorlevel%==0 xcopy C:\Users\user1\Desktop\testdatei.txt \\%Name%\C$ pause>nul ___________________________________________
uenetz Geschrieben 28. Januar 2013 Geschrieben 28. Januar 2013 Ich denke eine FOR - Schleife wäre das, was Du benötigst Hier der Link mit den dazu gehörigen Informationen: Batch files - The FOR command: Windows NT 4/Windows 2000 Syntax.
casio Geschrieben 8. Februar 2013 Geschrieben 8. Februar 2013 Hab mal was auf die schnelle geschrieben um IPs aus einer Liste zu lesen und den Status abzufragen. Denn Rest muss du ergänzen! X.BAT @echo off @setlocal cls for /f %%f in ('type liste.txt') do ( call y.bat %%f ) @endlocal Y.BAT @echo off @setlocal set ip=%1 ping -n 1 %ip% | find "TTL" > NUL if not errorlevel 1 set error=on if errorlevel 1 set error=off echo Result: %ip% : %error% if /I "%error%" == "on" ( ECHO "foo 1" ) else ( ECHO "foo 2" ) @endlocal
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden