Unklare BAT Datei

Fredl789

Newbie
Registriert
Jan. 2018
Beiträge
3
Hallo zusammen,
ich bin absoluter Neuling in Sachen Programmieren und habe nun eine BAT Datei erhalten für ein Programm des Kegelsports. Das Programm dient dazu, den aktuellen Spielstand in die Homepage zu bringen.
Da keine weitere Erklärung dazu vorhanden ist, würde mich interessieren was die einzelnen Befehle bedeuten.
Hier die Datei:
:nochmal

del "D:\Spielbericht\1\spielbericht.html"

pushd "C:\Program Files (x86)\Mayer Werke\spiel" ||goto :eof
for /f "delims=" %%a in ('dir /a-d /b /od *.html') do set "newestFile=%%a"
copy "%newestFile%" "D:\Spielbericht\1\%newestFile%"
popd

pushd "D:\Spielbericht\1" ||goto :eof
for /f "delims=" %%a in ('dir /a-d /b /od *.html') do set "newestFile=%%a"
rename "%newestFile%" "spielbericht.html"
popd


ftp -i -s:"C:\Program Files (x86)\Mayer Werke\Liveticker\upload.ftp"

ping localhost -n 11>NUL

goto :nochmal

insbesondere interessiere ich mich für die dunkel eingefärbten zeilen.

Ich hoffe mir kann das jemand erklären

Gruß Fred
 
pushd wechselt wie cd in ein Verzeichnis, merkt sich aber das alte Verzeichnis auf einem Stack. Mit popd geht man wieder zurück.

for ist ein Drama für sich... das ist eine Schleife, in dem Fall iteriert sie über die Ausgabe von dir also die Dateien im Verzeichnis und führt jeweils den set Befehl aus. Damit wird eine Umgebungsvariable (immer wieder neu) beschrieben, zum Schluss steht dann die letzte verarbeitete Dateiname drin (ist abhängig von der Sortierung beim dir, dürfte über die Parameter gesteuert sein das es die neuste Datei ist). Der wird vom copy dann kopiert und mit der zweiten Schleife im anderen Verzeichnis umbenannt (rename).
 
Noch eine Ergänzung - das ||goto :eof beendet die Batch-Datei, wenn der Befehl davor fehlschlägt.
 
Hallo,

hier etwas leichter lesbar und mit Kommentaren der Funktion:
Code:
@echo off
rem Verzeichnis des Kegelprograms
cd "C:\Program Files (x86)\Mayer Werke\spiel"
rem Upload-Datei im Html-Verzeichnis
set targetFile = "D:\Spielbericht\1\spielbericht.html"
:nochmal
rem Datei in Upload-Pfad löschen
del %targetFile%
rem Neuste Html-Datei im Verzeichnis suchen
for /f "delims=" %%a in ('dir /a-d /b /od *.html') do set "newestFile=%%a"
rem Datei in Upload-Pfad kopieren
copy "%newestFile%" "%targetFile%"
rem Neuste Datei hochladen
echo %time:~-11,8% lade neue Daten hoch
ftp -i -s:"C:\Program Files (x86)\Mayer Werke\Liveticker\upload.ftp"
rem 10 Sekunden verzögern
ping localhost -n 11 >NUL
rem Schleife wiederholen
goto :nochmal
 
Zurück
Oben