For-Schleife Batch
Hallo,
ich habe ein kleines Batch-Tool gemacht, jedoch funktioniert die for-Schleife nicht. Wie kann ich mein kleines Problem in der 3. und 4. Zeile lösen?
LG
[Edit Biber] Inhaltlicher Doppelpost zu Benutzernamen im Netzwerk auslesen.
Und auch noch WTHF in "Tools & Utilities" gesetzt.
Ich verschiebe es erstmal nach "Batch & Shell".
[/Edit]
ich habe ein kleines Batch-Tool gemacht, jedoch funktioniert die for-Schleife nicht. Wie kann ich mein kleines Problem in der 3. und 4. Zeile lösen?
LG
@echo off
set "ho=Platz"
FOR /L %%t IN (16,1,27) DO (
FOR /L %%x IN (1,1,11) DO (
if exist %systemdrive%\Log\*.txt del /F /S /Q %systemdrive%\Log\*.txt
if not exist %systemdrive%\Log md %systemdrive%\Log
if exist \\%ho%%%t\C$\ rename \\%ho%%%t\C$\Neu.txt Neu%%x.fcx && xcopy /C /Q /H \\%ho%%%t\C$\Neu%%x.fcx %systemdrive%\Log
)
)
pause > NUL
cls
echo Schritt 1 erledigt!
ping -n 2 localhost > NUL
cls
cd %systemdrive%\Log
FOR /L %%u IN (1,1,12) DO (
FOR %%b IN (Neu%%u.fcx) DO type %%b
echo.
pause > NUL
[Edit Biber] Inhaltlicher Doppelpost zu Benutzernamen im Netzwerk auslesen.
Und auch noch WTHF in "Tools & Utilities" gesetzt.
Ich verschiebe es erstmal nach "Batch & Shell".
[/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 107330
Url: https://administrator.de/forum/for-schleife-batch-107330.html
Ausgedruckt am: 29.04.2025 um 21:04 Uhr
13 Kommentare
Neuester Kommentar

Moinsen,
Zeile 5 & 6 könnte doch auch außerhalb der beiden Schleifen liegen.
Lediglich Zeile 7 ist "sinnvoll" in der Schleife, da nur dort auch ein "geschleifter Zähler" benutzt wird.
Ich schau mir das nacher nochmal an, und bis dahin trink ich erst mal einen Kaffee.
Aber so wie ich es sehe, solltest du entweder (das hab ich im letzten Thread noch nicht verstanden) - die Logs so nennen, wie den Zähler des jeweiligen Systems, oder den Log Zähler in einer set /a Schleife hochzählen.
Gruß
Zeile 5 & 6 könnte doch auch außerhalb der beiden Schleifen liegen.
Lediglich Zeile 7 ist "sinnvoll" in der Schleife, da nur dort auch ein "geschleifter Zähler" benutzt wird.
Ich schau mir das nacher nochmal an, und bis dahin trink ich erst mal einen Kaffee.
Aber so wie ich es sehe, solltest du entweder (das hab ich im letzten Thread noch nicht verstanden) - die Logs so nennen, wie den Zähler des jeweiligen Systems, oder den Log Zähler in einer set /a Schleife hochzählen.
Gruß
Hallo Guppinator!

Für Deine "name.bat" würde eigentlich eine Zeile genügen:
Im Gegenzug könntest Du dann die Zeile 6 der "einsammeln.bat" etwas sicherer machen:
Schließlich sollte für die Zeilen 14 bis 17 genügen:
Auch diese Zeilen solltest (im Fall des Falles) Du testen (ich hab's jedenfalls nicht gemacht
).
Grüße
bastla
Müsste so funktionieren, oder?
Ließe sich selbst testen, oder? Für Deine "name.bat" würde eigentlich eine Zeile genügen:
@echo %username%>C:\%computername%.fcx
if exist \\%ho%%%t\C$\*.fcx xcopy /C /Q /H \\%ho%%%t\C$\*.fcx %systemdrive%\Log
FOR /L %%i IN (16,1,27) DO if exist %ho%%%i.fcx (echo %ho%%%i.fcx & type %ho%%%i.fcx)
Grüße
bastla
Hallo Guppinator!
Da Du ja Admin-Rechte hast, sollte es eigentlich kein Problem sein, eine passende .fcx-Datei bei laufendem Rechner (remote) zu erstellen und dann das "Einsammeln" zu testen - wenn dabei nur einige Geräte eingeschaltet sind, wirst Du vielleicht auch noch auf die Idee kommen, vor dem "if exist" ein "ping" zu platzieren ...
Grüße
bastla
Da Du ja Admin-Rechte hast, sollte es eigentlich kein Problem sein, eine passende .fcx-Datei bei laufendem Rechner (remote) zu erstellen und dann das "Einsammeln" zu testen - wenn dabei nur einige Geräte eingeschaltet sind, wirst Du vielleicht auch noch auf die Idee kommen, vor dem "if exist" ein "ping" zu platzieren ...
Grüße
bastla

Servus Guppi,
jetzt schaust du dir bitte nochmal diesen genau an:
Das war / ist eine Anleitung die nicht nur funktioniert, sondern auch zeigen soll(te), wie man mit Haus & Boardmitteln genau das hinbekommt, was du haben willst - gut die Fernsteuerung willst du nicht, du willst nur "den Rest".
Und das kannst du dann auch gerne verändern, anpassen und bitte auch "lernen" wie das "komplexe" denn so läuft. - Den zum lernen war die Anleitung auch gedacht.
Auch wenn die Überschrift "irreführend ist" und es zig bessere Anleitungen zum Thema auf Administrator gibt - schaus dir bitte trotzdem an
Gruß
jetzt schaust du dir bitte nochmal diesen genau an:
Das war / ist eine Anleitung die nicht nur funktioniert, sondern auch zeigen soll(te), wie man mit Haus & Boardmitteln genau das hinbekommt, was du haben willst - gut die Fernsteuerung willst du nicht, du willst nur "den Rest".
Und das kannst du dann auch gerne verändern, anpassen und bitte auch "lernen" wie das "komplexe" denn so läuft. - Den zum lernen war die Anleitung auch gedacht.
Auch wenn die Überschrift "irreführend ist" und es zig bessere Anleitungen zum Thema auf Administrator gibt - schaus dir bitte trotzdem an
Gruß

Hai Guppi - oder darf ich schon Thunfisch sagen?
Also nochmal zurück...
Remote.cmd und die Rem dazu.
Zeile 19 -26 - dort ist genau das beschrieben, was Bastlas Tipp war.
Bzw. eigentlich nur in Zeile 20, aber wir wollen ja irgendwann mal dieses Thema abhaken und nicht Zeile für Zeile neu erfinden.
Gruß
Remote.cmd von besagtem Link und rem Remote.cmd mal beide ausgedruckt nebeneinander legen.
Ausprobiert habe ich das Tool, jedoch hat es bei mir nicht funktioniert.
Ähh das sind zwei - eines (Info.cmd), das die Daten erzeugt und eines (Remote.cmd) zum auslesen.Also nochmal zurück...
Remote.cmd und die Rem dazu.
Zeile 19 -26 - dort ist genau das beschrieben, was Bastlas Tipp war.
Bzw. eigentlich nur in Zeile 20, aber wir wollen ja irgendwann mal dieses Thema abhaken und nicht Zeile für Zeile neu erfinden.
Gruß

*schnief*
er geht immer von 21 auf 22 - egal, was du da eintippst.
Zeile 06
Ping - versucht lediglich eine Antwort auf ganz unterer Layer Basis vom Ziel zu bekommen - der kommt sehr schnell / oder auch nicht.
if exist \\%ho%%%t\C$ - ist da schon "fieser" - denn da zum erfüllen von "exist" muß sich das Script ja auch erstmal mit dem Ziel (das vielleicht) gar nicht an ist - mit dessen c$ verbinden.
ping -n 1%ho%%%t && if exist \\%ho%%%t\C$ usw. ist das was du als "selbstschreibener" Programmierer eigentlich daraus machen solltest, was Bastla dir geraten hat.
Mittlerweile darfst du gerne ein
Rem [c] By Bastla
Rem [c] By Biber
an den Header "deines" Programms schreiben
gruß
Zeile 21: if /I "%p%"=="y" goto y
Zeile 22: :y
Zeile 22: :y
er geht immer von 21 auf 22 - egal, was du da eintippst.
Zeile 06
Aber was bringt mir bitte ping -n 1 Host
Ping - versucht lediglich eine Antwort auf ganz unterer Layer Basis vom Ziel zu bekommen - der kommt sehr schnell / oder auch nicht.
if exist \\%ho%%%t\C$ - ist da schon "fieser" - denn da zum erfüllen von "exist" muß sich das Script ja auch erstmal mit dem Ziel (das vielleicht) gar nicht an ist - mit dessen c$ verbinden.
ping -n 1%ho%%%t && if exist \\%ho%%%t\C$ usw. ist das was du als "selbstschreibener" Programmierer eigentlich daraus machen solltest, was Bastla dir geraten hat.
Mittlerweile darfst du gerne ein
Rem [c] By Bastla
Rem [c] By Biber
an den Header "deines" Programms schreiben
gruß