Frage von msperl, 30

Wie kann man per Batch-Datei alle 30 Sec. ein Bild zum Server senden?

Hallo,

ich habe keine Ahnung mit Batch-Dateien.

Ich bräuchte aber einen batch Datei die irgendwie voM Bildschirm alle 30 Sec ein bild macht und das auf einen Server lädt in ein bestimmtes Verzeichnis.

Die Datei sollte immer gleich heissen. Wenn ein neues Bild auf den Sever geladen wird, sollte das andere gelöscht werden.

FAlls das mit dem Bildschirmscreen nicht geht.. würde mir auch reichen, einfach ein Bild aus einem Verzeichnuis alle 30 Sec. auf den Server laden zu lassen.

Ich habe zum Download von einem Server schon was gefunden, aber eben nicht zum upload.


@echo off

REM --- Variablen Definitionen ---

REM progdir = Pfad zur Programmdatei curl.exe REM fileurl = Hyperlink zum Dateiverzeichnis im Internet REM filename= Name der Datei, die aus dem "fileurl" Verzeichnis gezogen werden soll

set progdir="C:\Prorgamme\curl" set fileurl="http://url.zurDatei.de/bilder" set filename="Bild1.jpg"

REM -----------------------

REM Hier beginnt das Hauptprogramm in einer Endlosschleife REM Abbruch mit CTRL+C oder es muss eine Abbruchbedingung programmiert REM werden.

REM Der Pingbefehl macht nach dem Start im Sekundenabstand eine Aktion. Die Ausgabe REM des Befehls wird ins "Nirvana" umgeleitet, damit die Konsole nicht vollgeschrieben wird.

REM Es wird geprüft, ob eine bestimmte Datei vorhanden ist. Wenn ja, wird sie gelöscht und sofort REM versucht, eine neue Version herunter zu laden. Ist sie nicht vorhanden wrd nur versucht REM sie herunter zu laden.

REM Eigentlich ist der "del" Befehl überflüssig, weil die Datei immer wieder durch den neuen Download REM überschrieben wird.

:schleifenanfang

IF EXIST %filename% ( echo "Loesche Datei %filename%" del %filename% echo "Lade Datei %filename% herunter" %progdir%\curl.exe -O %fileurl%/%filename% ) ELSE ( echo "Datei %filename% nicht vorhanden. Lade diese Datei herunter" %progdir%\curl.exe -O %fileurl%/%filename% )

REM ca. 20 Sekunden (gewuenschte Sekundenzahl+1) warten. ping -n 21 localhost >nul

GOTO schleifenanfang

Kann mir hierzu wer helfen, wie der Code eingebaut sein müsste?

Besten Dank.

MfG

Antwort
von PeterKremsner, 13

Beim Upload kommt es drauf an welcher Protokoll du verwendest du musst dir zuerst ein Programm suchen, welches FTP FTPS oder SFTP (am Sichersten) beherscht.

Zudem muss auf dem Server natürlich auch ein entsprechender Dienst laufen, für SFTP muss das nur der SSH Dienst sein.

Danach kannst du da mal Bilder hochladen, Screenshots sind ein anderes Thema und können je nach Auflösung sehr groß werden und das Verursacht eine Hohe Datenlast zum Server von da her würde ich vorschlagen den Screenshot vor dem Senden mit LZMA (7-zip) zu komprimieren und dann zu verschicken.

Natürlich muss dein Script auch einen Screenshot machen können.

http://superuser.com/questions/75614/take-a-screen-shot-from-command-line-in-win...

Da wäre eine Lösung über imagemagick.

Das Script musst du jetzt alle 30 Sekunden ausführen:

https://msdn.microsoft.com/en-us/library/windows/desktop/bb736357(v=vs.85).aspx

das kannst du mit diesem Programm erreichen, ob es das auf Windows 10 noch gibt weis ich nicht (ich bin mehr der Linux Typ), aber es gibt sicher eine alternative dazu.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten