Was kann Batch und was nicht?

Hallo Habo,

ähm letztes ist jmd. im Unterricht kurz auf Batch-Dateien eingegangen und das fand ich ziemlich interessant, jetzt habe ich einfach mal bisschen gegoogelt und schon paar Ideen was ich mal selber schreiben/programmieren will.

Aber jetzt weiß ich gar nicht genau was Batch überhaupt kann und im Internet habe ich auch nicht soviel dazu gefunden, immer nur was welche Befehle machen und so etwas.

Ich frage einfach mal los:

Kann man per Batch Dateien aus dem Internet laden und bestimmen wo sie gespeichert werden?

Kann man per Batch E-Mails versenden oder dem Batch sagen, das es auf gmx gehen soll, sich als user/pw einloggen soll?

Kann man per Batch Exe-Dateien installieren und bestimmen wo? (vllt mit START Befehl oder so?)

Also das wärs erstmal, vllt kommen am Abend noch per Edit Fragen dazu.
Freue mich natürlich über jeden Link und über jede Aufklärung/Info.

Lg

schönen Abend noch
 
Kenn mich nicht besonders gut mit Batch aus aber ich versuch mal zu antworten. Es ist möglich mit Batch E-Mails über SMTP zu verschicken. Ob man Dateien downloaden kann weiss ich nicht, ich kanns mir aber vorstellen wenn du die URL wie einen lokalen Pfad behandelst. Was meinst du mit EXE installieren? Du kannst ein Script schreiben das die EXE und alle Dateien die sie benötigt nach %ProgramFiles% kopiert.
 
BATCH ist im Prinzip nur Stapelverarbeitung.
Du führst halt nacheinander diverse Befehle aus um erst eine Datei zu kopieren dann umzubenennen etc.
In diesem Batch Skript kannst du dann z.B. andere Programme starten und z.B. über ein kleines Java Programm eine Mail zu verschicken. Den Inhalt übergibst du als Parameter.

Nette Sachen kann man da z.B. für seinen Laptop machen.
Ich Ping dabei einen Server an, wenn der Server nicht erreichbar ist, starte ich bestimmte Programme nicht, da ich ja dann unterwegs bin(das Skript starte ich dann beim Systemsrart) :)
 
Im Prinzip kannst du in einer Batchdatei alle Befehle und Programme aufrufen die du auch sonst einfach eingeben könntest.

Zusätzlich zu den vorgebenen Befehlen (sprich DOS-Befehlen) kannst du also jedes denkbare Programm aus der Batchdatei heraus AUFRUFEN.

Für solche Sachen wie Dateien runterladen, emails versenden usw. brauchst du also ein entsprechendes Programm, dass sich über die Kommandozeile steuern lässt.

Eine .exe ausführen kannst du immer das heisst ja Programm aufrufen.

Kann nochmal auf den ersten Satz hinweisen: Stell dir vor du sitzt am Rechner, hast die Kommandozeile vor dir und gibst dann munter Befehle und Programmaufrufe ein um IRGENDWAS zu machen. Jetzt merkst du dir den Ablauf und speichert den als Text in eine irgendwas.bat Datei. An den Stellen wo du rgendwas entscheiden musstet kommt eine if (wenn/dann) Anweisung. Und abrakadabra du kannst dir beim nächsten mal das tippen sparen und die irgendwas.bat aufrufen die dann alles automatisch macht.

Google hat mir das hier ausgespuckt:

http://de.wikibooks.org/wiki/Batch-Programmierung

Ich glaube das erschlägt so ziemlich alles was du erstmal wissen musst.

EDIT: Schon ne Antwort da, das kommt davon, wenn so lange rumformuliert... Ryloth hats so ziemlich auf den Punkt gebracht (und das kürzer) ;)
 
Original von kuzdu

Kann man per Batch Dateien aus dem Internet laden und bestimmen wo sie gespeichert werden?

Kann man per Batch E-Mails versenden oder dem Batch sagen, das es auf gmx gehen soll, sich als user/pw einloggen soll?

Kann man per Batch Exe-Dateien installieren und bestimmen wo? (vllt mit START Befehl oder so?)
schönen Abend noch

1. ja mit dem FTP befehl zB.
2. senden ja abrufen wir da wohl eher unmöglich
3. mit cp (copy) sollte das gehen
 
So pauschal kann man das mit den Mails nicht sagen.
wenn es z.B. fuer windows eine Kommandozeilenimplentierung fuer ssh gibt(aehnlich putty)oder etwas aehnliches wie fetschmail.
dann kommt es z.b. auf das Zielsystem an.
Ich besitze auf einem Solarissytem z.B. einen Account.
Wenn ich mich da per ssh einlogge und Mail eingebe dann werden die Mails anzeigt, diese kann man umleiten oder die Mails direkt per scp befehl rueberkompieren.
Wie schon gesagt wurde:
Die Kommandozeile,egal von welchem OS, ist nur so maechtig wie die Prorgamme die sie aufrufen kann.
Natuerlich ist das vorhandensein von variablen von vorteil.
mfg

sw33t
 
toller thread da batch meine lieblingssprache ist, ja ich sehe batch als ernstzunehmende sprache, da man mit ihr wirklich interresante sachen machen kann. mails abrufen geht übrigens, auf jeden fall von POP3 servern (telnet RuLeZ) du kannst mit batch sehr schnelle, effiziente aber leider meist ziemlich hässliche programme schreiben. außerdem sind fast alle sysf*** in batch geschrieben aber darauf wollen wir hier nicht näher eingehen, sonst hauen mich alle.

alles in allem ist batch ein guter einstieg in die welt der programmierung und wird dir sehr oft nützlich sein, da sachen wie z.B. kindersicherungen oder andere ähnlich systemnahe programme mit batch deutlich einfacher als mit anderen sprachen realisieren lasse..

aja ein sehr gutes batch tut ist übrigens DAS HIER

ich und mein freund schreiben gerade eine erweiterung für batch (genannt BATxx-Engine) mit der programmieren unter batch noch komfortabler undumfangreicher werden soll, is noch nich fertig aber ich schätze so in ~1 monat spätestens, wir ladens dann auf unsre seite (www.iluskateboards.de) hoch.
 
@LionC: naja, da wird wohl jeder seine programmiersprache für die beste einsteigersprache halen wie ich c++^^ und batch ist technisch gesehen ja eine SKRIPT sprache...
 
Zum Thema Download mit WGET:

Der Freenet-Link ist ein wenig veraltet - aktuell gibt es die Version 1.11

Und erst seit Version 1.11 kann wget nämlich z.B. folgendes:

es gibt ja Seiten, wo die zu downloadenden Dateien nicht direkt über's WWW verfügbar sind (außerhalb des web-roots gespeichert), oder von einem Mirror weitergeleitet werden.
Dann ist der Download-Link z.B. http://www.example.com/download?id=678 und den eigentlichen Speicherort bekommst du nicht zu Gesicht.
Der Name der eigentlichen Datei wird im Response-Header mitgesendet.

Und diesen Namen aus dem Header auslesen und die Datei dann so zu benennen, das funktioniert mit Versionen <1.11 noch nicht.

hier gibt es die aktuellen Sources von offizieller Stelle:
ftp://ftp.gnu.org/gnu/wget/

und hier gibt's gezippt ne fertige wget.exe, incl. hlp-Datei, dlls, die möglicherweise auf dem einen oder anderen System fehlen könnten, aber gebraucht werden, etc.
http://www.christopherlewis.com/WGet/WGetFiles.htm
 
Batch ? systemnah ? ... ist programmieren ?

Ich weiß ja nicht womit Ihr Batchdateien macht (Ihr meint doch batch in Windows?)

In batch kann man keine Mails versenden. Man kann Programme starten, die das können
In batch kann man keine Internetseiten speichern. Man kann Programme starten, die das können.
Etwas systemnahes hab ich in batch auch noch nicht gesehen..
Programmieren geht in batch nicht -> es gibt nur gotos oder gosubs oder so -> Das ist spaghetti und noch nichteinmal skriptstandard.
 
Original von da_fighter
Unter Linux ist das dabei, bei Windows musstes eben nachinstallieren. Sonst halt über FTP, wobei du da die Daten in die .bat schreiben musst, was prinzipiell schonmal nich so praktisch ist, wenn du noch andere Benutzer auf dem PC hast.

Nicht ganz richtig, man muss die Verbindungsdaten (ich nehme an, dass du die meinst, also PWD und User) nicht in die Batch-Datei schreiben, man kann sie vom Nutzer eingeben lassen. Das geht wie folgt:

Code:
set /P var=

Das kann auch noch erweitert werden, um einen Text, der beschreibt, was eingegeben werden soll, z.B.:

Code:
set /P var=Bitte geben sie ihren Benutzernamen ein:

mfg soul
 
@cellarjay hey ich als leidenschaftlicher batcher sehe das als persönlichen angriff^^

ne mal im ernst natürlich ist batch eine skriptsprache, welche allerdings in nahem kontakt mit windows steht, denn batch ruft nicht nur programme auf. außerdem wird es von windows unterstützt (%WINDIR%;%HOMEDRIVE%;%ProgramFiles%...) dadurch sind viele abläufe DEUTLICH einfacher und schlanker zu realisieren, als mit einer "echten" sprache ala C++, Basic o.ä.

das problem ist das du auch in anderen sprachen auf bereits bestehende funktionen zurückgreifst, wäre ja auch schlimm wenn nicht (INT 21h X() und in batch sind diese befehle nun mal win-funktionen. alles in allem denke ich das man in batch viele sachen einfacher und schneller schreiben kann, und zu unrecht einen schlechten ruf in der "gehobenen" oder "seriösen" szene hat.
 
Dir fehlt der Vergleich ;)
Wenn Du mal mit meinertwegen shell oder einfach nur VBS (um bei Windows zu bleiben) gearbeitet hast, würdest Du sehen, was für eine Krücke Batch ist, wenn es um mehr als Stapelverabeitungsaufgaben geht ;)
%Windir% etc sind übrigens nur Umgebungsvariablen, die vom OS angeboten werden. D.h in vielen Sprachen hat man dazu einen direkten Zugang - in C mit getenv, in Java mit
System.getenv("WINDIR").
 
dadurch sind viele abläufe DEUTLICH einfacher und schlanker zu realisieren, als mit einer "echten" sprache ala C++, Basic o.ä.

Schonmal mit C# programmiert? Also ich lass mir Batch zum erstellen von Bootdisks und für täglich anfallende Aufräumaktionen oder so eingehen, aber für mehr schon auch nicht. Ich kann nur cellarjay zustimmen.
 
hm.....das das umgebungsvars sin weiß ich aber wen du funktionen benötigst, um diese zu nutzen wird das ganze doch schon wieder wesentlich komplizierter, da in batch jede zeile zuerst nach diesen vars untersucht wird und diese direkt in den befehl eingesetzt werden. ich habe nicht bestritten, dass batch grenzen hat, dies ist nicht zu bestreiten, allerdings meinte ich mit deutlich einfacher und schneller, dass der batch-code meist ca. 1/3-1/4 der zeilen hat, die das ganze in C++ o.ä. haben würde.

habe übrigens sowohl mit VBS, als auch mit C++ schon geproggt, missbracuhe in batch vbs des öfteren für grafisch schöne fehlermeldungen ;)
 
Batch und so

Hi, (bischen spät)

ich muss täglich Programme schreiben, die funktionieren und wenn es Fehler gibt muss ich wissen welche.

Wenn ich das mit batch machen würde, wäre ich meinen Job los!
 
Zurück
Oben