Autor Thema: Update automatisieren mit Wget  (Gelesen 13489 mal)

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Update automatisieren mit Wget
« am: 06. Dezember 2010, 14:05:21 »
Ich will auf XP Home SP3 mit wget und mittels einer Batch folgende Downloads automatisch durchführen lassen:

miranda-im-v0.9.12-unicode.exe
miranda-im-v0.9.12-unicode.7z
miranda-im-v0.9.12-ansi.7z
miranda-im-v0.9.12-unicode-contrib.7z
miranda-im-v0.9.12-ansi-contrib.7z

Ich habe es mit folgender Batch probiert:

@echo off

REM unicode.exe
wget -r "http://miranda.googlecode.com/files/miranda-im-v0.9.12-unicode.exe"

REM unicode.7z
wget -r "http://miranda.googlecode.com/files/miranda-im-v0.9.12-unicode.7z"

REM ansi.7z
wget -r "http://miranda.googlecode.com/files/miranda-im-v0.9.12-ansi.7z"

REM unicode-contrib.7z
wget -r "http://miranda.googlecode.com/files/miranda-im-v0.9.12-unicode-contrib.7z"

REM ansi-contrib.7z
wget -r "http://miranda.googlecode.com/files/miranda-im-v0.9.12-ansi-contrib.7z"

cls

Leider wird nichts gedownloadet, vermutlich weil die Syntax nicht stimmt.
Weiß bitte jemand, wie es richtig geht?
« Letzte Änderung: 10. Januar 2012, 20:38:32 von madmax25 »

BluePeril

  • Gelegenheitsposter
  • ***
  • Beiträge: 64
  • Geschlecht: Männlich
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #1 am: 06. Dezember 2010, 19:02:27 »
Das -r ist eigentlich nicht notwendig, weil du in kein Unterverzeichnis abtauchst (oder willst du das alles in den Ordnern "miranda.googlecode.com" und "files" gespeichert wird?).
Das Skript wird wahrscheinlich die wget.exe nicht finden, wenn sie nicht im gleichen Pfad wie die herunterzuladenden Dateien liegt. Ansonsten ist die Syntax in Ordnung.
Hier gibt es zwei Möglichkeiten:
1. absolute Pfade nutzen (z.B. C:\Programme\wget\wget.exe "http://miranda.googlecode.com/files/miranda-im-v0.9.12-unicode.exe")
2. den Pfad von wget mit in die Umgebungsvariable Path setzen. Also an den Anfang (nach dem @echo off) ein PATH="%PATH%;C:\Programme\wget" setzen.
« Letzte Änderung: 06. Dezember 2010, 19:10:56 von BluePeril »

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #2 am: 07. Dezember 2010, 00:02:36 »
Die wget.exe und die Batch sind im gleichen Ordner.
Deshalb hätte es eigentlich gehen sollen (dachte ich jedenfalls).
Ohne -r hab ich´s auch probiert, war aber ebenso erfolglos.

Ich hab´s auch schon mit .\wget probiert.
Auch nichts.
Den Versuch mit absolutem Pfad zur Wget.exe mache ich morgen.
Wenn das auch nicht geht, seh ich schwarz.

Den Teil der geplanten Automatisierung zum Entpacken in die entsprechenden Ordner (vor allem auf mobile Installationen auf zwei USB-Sticks) hab ich schon länger (mit 7zip realisiert).
Nun ist mir noch das Auswählen und einzelne Downloaden der 5 Pakete zu zeitraubend.
Wenn ich das mit Wget schaffen würde, könnte ich das komplette Update vollautomatisch durchführen lassen.

Dann bräuchte ich nur noch eine automatische Versionsnummernanpassung bzw. eine automatische Erkennung der aktuellsten Versionen, sonst muss ich die immer manuell in der Batch anpassen, was aber auch ein Krampf wäre. So gesehen wäre es leichter, wenn die Pakete immer den gleichen Namen hätten, ohne Versionsnummern.
Müsste ja eigentlich auch genügen, wenn die Nummern nur in den Links vorkommen, aber nicht in den Dateinamen selbst. So überschreibt man dann zwar bereits im Download-Ordner vorhandene Pakete, aber die wären eh alt und daher kein Verlust.

Es könnte aber auch mit einer Variablen gehen, die ich in einer zweiten Batch definiere und aus der ersten Batch mit dem call-Befehl aufrufe.
Dann brauche ich die Nummer immerhin nur an einer Stelle zu ändern.
Aber gut, dieser Teil meines Planes muss noch genauer überlegt werden.
Erst mal muss ich den Download-Teil hinkriegen.

progandy

  • Plugin-Autor
  • Akkordschreiber
  • ***
  • Beiträge: 626
    • progandy@hot-chilli.net"
    • http://progandy.miranda-vi.org"
    • Profil anzeigen
    • ProgAndy
Re:Update automatisieren mit Wget?
« Antwort #3 am: 07. Dezember 2010, 10:05:55 »
Hey,
Ich würde dir vorschlagen, mal AutoIt anzuschauen. Das ist eine Skriptsprache, mit der du ziemlich einfach solche Probleme lösen kannst ;)
Edit: Die aktuellen Versionen stehen hier: http://update.miranda-im.org/update.xml
« Letzte Änderung: 07. Dezember 2010, 10:11:30 von progandy »
Jetzt wo ich weiss wie es funktioniert versteh ich auch die Gebrauchsanleitung
[Status: Jabber]

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #4 am: 07. Dezember 2010, 11:06:40 »
Die gleichen URL´s verwende ich auch.
Die hab ich jedoch von hier geholt, wobei ich immer die URL´s nahm, die mit den grünen Download-Pfeilen verknüpft waren.

Ich würd´s gern mit einer Batch hinkriegen, weil ich damit, wie gesagt, den Installationsteil auch schon fertig habe.

@ BluePeril
Der absolute Pfad geht leider auch nicht.

EDIT:
Inzwischen bin ich mir ziemlich sicher, dass die Syntax stimmt (das -r hab ich weggelassen).
Daher ist es mir unklar, warum der Download nicht stattfindet.
« Letzte Änderung: 07. Dezember 2010, 11:33:15 von madmax25 »

lastwebpage

  • Suche Umschulung zum Wahrsager! Brauche Geld!
  • Administrator
  • ***
  • Beiträge: 3.203
  • Lesen bildet!
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #5 am: 07. Dezember 2010, 14:12:15 »
Also gut mein Senf dazu...

1: Wenn ich eine Befehlszeile öffne und da
wget http://miranda.googlecode.com/files/miranda-im-v0.9.12-unicode.7z
eingebe, mit oder ohne "", funktioniert es, wenn sich wget im selben Verzeichnis befindet.

2: Wie oben auch schon angegeben
http://update.miranda-im.org/update.xml oder auch http://code.google.com/feeds/p/miranda/downloads/basic
enthalten die jeweils aktuelle Versionen.

3: cmd.exe, text-parsen (wenn du immer die neuesten Dateien willst), wget.exe, später das ganze irgendwie noch mit 7za.exe zusammenbringen, vielleicht auch noch irgendeine Benutzerabfrage...  mit einer BAT oder von mir aus cmd Datei ???
Ich würde es da eher irgendwie mit WebClient.DownloadFile machen.
Das sind Windows vb- oder java-scripte für windows. (Siehe WSH .
Die Realität, die andere Realität, die Absurdität, mach es zu deinem Projekt!

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #6 am: 07. Dezember 2010, 15:59:59 »
Zu 1.:
Das würde bedeuten, meine Download-Befehle bzw. meine oben angegebene Batchzeilen sind richtig (von dem -r, das man sich wegdenken sollte, mal abgesehen), denn die wget.exe ist im gleichen Ordner.
Dann kapier ich aber nicht, warum bei mir nichts ankommt.
ich hab´s auch teilweise mit @echo on probiert, um zu beobachten, was sich abspielt, aber die Zeilen werden einfach abgearbeitet, ohne das was passiert.
Muss ich da vielleicht noch irgend einen bestimmten Port im Router oder in der Firewall öffnen? Aber in der XP-Firewall wohl eher nicht, denn die fragt ja bei Bedarf, ob ich das erlauben will, was sie aber hier nicht tat.

Zu 2.:
Ja, aber wie verlinke ich das am besten in meiner Batch? Denn der Download-Button führt ja trotzdem immer wieder zu einem Paket mit Versionsnummer, sprich zu genau den URL´s, die ich bereits verwende.

Zu 3.:
7zip-Command lines hab ich schon erfolgreich benutzt, um die bereits gedownloadeten Pakete in die entsprechenden Ordner zu entpacken. Das funktioniert also bereits.
Es geht "nur" noch darum, den automatisierten Download zu realisieren und dabei irgendwie die aktuellsten Versionsnummern abzufragen, sodass ich die Batch nicht jedes Mal erst manuell bearbeiten muss.

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #7 am: 12. Dezember 2010, 01:25:37 »
@progandy

Mit AutoIt komm ich auch nicht weiter.
Da hab ich nicht die leiseste Idee, wie ich damit die gewünschten Downloads hinkriegen soll.

@ lastwebpage

Zitat
...Ich würde es da eher irgendwie mit WebClient.DownloadFile machen....

Hast Du das vielleicht noch etwas genauer, für "Nichtprogrammierer"?
Mit dem "irgendwie" kann ich nicht wirklich was anfangen und WebClient.DownloadFile sagt mir auch nichts.

lastwebpage

  • Suche Umschulung zum Wahrsager! Brauche Geld!
  • Administrator
  • ***
  • Beiträge: 3.203
  • Lesen bildet!
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #8 am: 12. Dezember 2010, 02:42:37 »
"Nichtprogrammierer" hmmmh, also nein. Ich habe jetzt auch keine Fix und Fertig script dafür ;)
Ein wenig Visual Basic Script Kenntnisse bräucht man schon.

Nur generell würde ich vbs schon umfangreicheren BAT Dateien vorziehen.
Die Realität, die andere Realität, die Absurdität, mach es zu deinem Projekt!

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #9 am: 12. Dezember 2010, 03:35:43 »
Für den Anfang würde es mir schon reichen, rauszufinden oder zu erfahren, warum Befehle wie der folgende nicht gehen, obwohl die Zeile nach x-mal prüfen stimmen muss. Wie gesagt, die wget.exe ist im gleichen Ordner wie die Batch mit dieser Zeile

wget "http://miranda.googlecode.com/files/miranda-im-v0.9.12-unicode.7z"
Wenn ich das mit @echo on mache, passiert nichts, außer dass die Zeile einfach angezeigt wird, sie also anscheinend tatsächlich aufgerufen wird.

Wenn ich nicht genau wüsste, dass ich wget früher schon mal benutzt hatte und es damals ging....
Das war zwar für einen anderen Download, aber der lief damals.
Ich kapier´s nicht, dass das jetzt nicht mehr geht.

Wie wär´s denn mit einem Script für die eine Datei in der CODE-Zeile dieses Beitrages?

Wenn ich dafür was funktionierendes bekommen könnte, hätte ich etwas, worauf ich aufbauen kann.

Ich brauche ja nichts für den gesamten Updatevorgang, ich will nur die Pakete (oder zumindest eines davon als Beispiel) auf meiner Platte haben. Den Rest schaff ich dann selbst.

EDIT:
Die Downloads gehen jetzt.
Endlich! ;D
Der Fehler war, dass ich wget nicht installiert hatte, sondern nur dessen exe benutzte.
Nach richtiger Installation mit Hilfe des wget-Setups lief es dann.

Jetzt kann ich die gewünschten Pakete downloaden und installieren bzw. entpacken. Zur Zeit geht das noch nicht in einem Rutsch, da noch alles auf mehrere Batches verteilt ist, die ich zu einer zusammenbauen werde, sobald alle Einzelschritte (Versionsabfrage->Download->Installation) funktionieren.

Unkomfortabel ist bisher noch, dass ich vor dem Updatevorgang die gewünschte Versionsnummer eintragen muss.
Dafür habe ich die folgende Version.bat, die so aussieht (die kommende 0.9.13 ist im CODE-Beispiel bereits eingeplant):

@echo off

Set X1=0.9.13

cls

Diese Batch rufe ich per call auf, wo immer in den anderen Batches eine Versionsnummer gebraucht wird. Dazu habe ich an den entsprechenden Stellen die Nummer durch die Variable %X1% ersetzt.

Was mir jetzt noch fehlt, ist also eine automatische Versionsabfrage, damit ich nicht immer vorm Update-Vorgang die Version.bat brauche, um Versionsnummer manuell anzupassen.

Dann kann ich alle Komponenten zusammenbauen, um einen durchgehenden Updatevorgang zu bekommen.
« Letzte Änderung: 12. Dezember 2010, 22:36:24 von madmax25 »

progandy

  • Plugin-Autor
  • Akkordschreiber
  • ***
  • Beiträge: 626
    • progandy@hot-chilli.net"
    • http://progandy.miranda-vi.org"
    • Profil anzeigen
    • ProgAndy
Re:Update automatisieren mit Wget?
« Antwort #10 am: 12. Dezember 2010, 23:31:09 »
@progandy

Mit AutoIt komm ich auch nicht weiter.
Da hab ich nicht die leiseste Idee, wie ich damit die gewünschten Downloads hinkriegen soll.
Bitteschön ;)
http://progandy.pastebin.com/HpeZh13A (Benötigt zusätzlich noch 7zip von hier und die 7-zip32.dll)
« Letzte Änderung: 12. Dezember 2010, 23:34:35 von progandy »
Jetzt wo ich weiss wie es funktioniert versteh ich auch die Gebrauchsanleitung
[Status: Jabber]

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #11 am: 13. Dezember 2010, 00:43:01 »
Das verstehst Du unter "ziemlich einfach" (Zitat aus Deinem Beitrag, in dem Du mir AutoIt empfohlen hattest)?

Hiiilllfffeee!!! Ist ja ein riiiiesen Aufwand.  ???  ;)

Puuh, da hast Du Dir aber Arbeit gemacht.

Also wenn ich das richtig verstehe, kann man damit die Pakete downloaden, wobei die Abfragen auf die aktuellsten Versionen auch schon mit drin sind.

Und mit der Batch, die ich bereits besitze und die mit Hilfe von 7zip-Commandozeilen die Pakete entpackt, kann ich die Downloads dann installieren.


Ich überlege gerade, ob es nicht vielleicht eine einfachere Methode gibt.

In der Datei...

http://update.miranda-im.org/update.xml

...steht ja, wenn ich richtig informiert bin, immer die aktuellste Versionsnummer (ich nehme mal die kommende 0.9.13).

Wenn man nun aus dieser Datei mit für Batches verfügbaren Mitteln die Nummer aus der Zeile...

<versionpublic>0.9.13</versionpublic>
...auslesen und in meine Version.bat reinkriegen könnte, dann wäre die Verbindung zu meiner bisherigen Vorarbeit geschaffen.

Vielleicht ginge es ja ungefähr so (ich muss das noch genauer überlegen):

Man downloaded die update.xml mittels wget, benennt, per Batch-Befehl versteht sich, die update.xml in update.txt um.

Dann entfernt man alles außer der gewünschten Nummer oder kopiert die Zeichen von Stelle 135 bis 141 in eine weitere txt-Datei, z.B. 02.txt.
Hierfür bräuchte man eine Abfrage, um den gesuchten String, der die Nummer darstellt, zu isolieren.
Jetzt hat man also die 02.txt.
Zuvor muss man noch die Dateien 01.txt und 03.txt vorbereiten, sodass man nun die folgenden drei txt-Dateien hat.

01.txt:
@echo off


02.txt (enthält die isolierte Nummer, in diesem Fall also die 0.9.13):
0.9.13


03.txt:
cls  

Diese drei Dateien addiert man folgendermaßen binär mit...

copy /b 01.txt + 02.txt + 03.txt Version.bat
Heraus kommt die Version.bat, die man per call-Befehl in den anderen Batches nach Bedarf aufrufen kann.

EDIT:
OK, diese Idee bedeutet wahrscheinlich auch nicht gerade viiel weniger Aufwand.  ;D
« Letzte Änderung: 13. Dezember 2010, 00:54:22 von madmax25 »

progandy

  • Plugin-Autor
  • Akkordschreiber
  • ***
  • Beiträge: 626
    • progandy@hot-chilli.net"
    • http://progandy.miranda-vi.org"
    • Profil anzeigen
    • ProgAndy
Re:Update automatisieren mit Wget?
« Antwort #12 am: 13. Dezember 2010, 08:34:36 »
Das verstehst Du unter "ziemlich einfach" (Zitat aus Deinem Beitrag, in dem Du mir AutoIt empfohlen hattest)?

Hiiilllfffeee!!! Ist ja ein riiiiesen Aufwand.  ???  ;)
Das ist auch schon die erweiterte Version. Ohne Fortschrittsbalken beim Download schrumpft der Code um die Hälfte ;)
Dazu musst du die Zeilen von InetGet (Z.57) bis 101 (1. EndIf nach 7z) austauschen mit:

       ; Starte Download ins Temporäre Verzeichnis und entpacke bei Erfolg
        If InetGet($sDownloadFile, @TempDir & "\" & $sTarget, 1, 0) Then
                DirCreate(@DesktopDir&"\TestMirandaDL")
                _7ZIPExtract(0, @TempDir & "\" & $sTarget, @DesktopDir&"\TestMirandaDL")
        EndIf

Edit: Wie du siehst, ist dann 90% vom Code für das Auslesen der Versionsnummer, der Download selbst ost schnell gemacht.
« Letzte Änderung: 13. Dezember 2010, 08:36:51 von progandy »
Jetzt wo ich weiss wie es funktioniert versteh ich auch die Gebrauchsanleitung
[Status: Jabber]

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #13 am: 13. Dezember 2010, 09:58:49 »
OK, den Download krieg ich inzwischen mit meinen Mitteln hin (d.h. mit Wget) und das Entpacken mach ich mit 7zip-Commandlines.

Wo es noch klemmt, ist das Erfassen der aktuellen Versionsnummer.

Was hältst Du von meinem Ansatz vom vorherigen Beitrag?
Siehst Du da eine Chance?
Ich meine, wenn ich da die Nummer in eine txt-Datei isoliert kriege (so dass wirklich nur ganz alleine die Nummer drin steht), hätte ich es geschafft.
Dann käme ich alleine weiter.

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #14 am: 29. April 2011, 11:48:09 »
Hi Leute!

Bin gerade mal wieder am Grübeln, wie ich das Miranda-Update per Batch automatisieren könnte.

Ich habe folgende Batch namens Download.bat zum downloaden der gewünschten Pakete gemacht:

@echo off

call Version.bat

REM unicode.exe
wget http://miranda.googlecode.com/files/miranda-im-v%X1%-unicode.exe

REM unicode.7z
wget http://miranda.googlecode.com/files/miranda-im-v%X1%-unicode.7z

REM ansi.7z
wget http://miranda.googlecode.com/files/miranda-im-v%X1%-ansi.7z

REM unicode-contrib.7z
wget http://miranda.googlecode.com/files/miranda-im-v%X1%-unicode-contrib.7z

REM ansi-contrib.7z
wget http://miranda.googlecode.com/files/miranda-im-v%X1%-ansi-contrib.7z

move .\miranda-im-v%X1%*.* "D:\Downloads"

cls

Das Entpacken realisiere ich anschließend mit einer weiteren Batch, das funktioniert bereits.
 
In der im "Code"-Abschnitt erwähnten "Version.bat" steht nichts weiter als

set %X1%= und dann die jeweils gerade aktuelle Miranda-Versionsnummer, damit in der Download.bat anstelle der Variablen %X1% die Versionsnummer eingesetzt wird und wget (genauer wget.exe) ist ein Commandline-Downloader.

Nun ist aber genau diese "Version.bat" das Problem, weil ich diese Datei nervenderweise bei jeder neuen Miranda-Version manuell anpassen muss, damit die Download.bat die richtigen, d.h. die aktuellen Pakete downloadet.

Jetzt hatte ich eine neue Idee.
Ich will diese Seite nutzen.
Dann will ich die URL´s der grünen Download-Pfeile verwenden.

Ich dachte, ich ersetze bei den jeweiligen URL´s die Nummer durch einen Joker, also einen *, damit die Batch immer die aktuellsten Pakete downloadet, ohne dass ich die Versionsnummer.bat anpassen muss, aber wget akzeptiert keine Joker bei http-Links.

Aber mit ftp anstelle von http klappt es auch nicht, weil da Zugangsdaten verlangt werden, die ich natürlich nicht habe.

Nun die Frage:

Gibt es irgendeine Batch oder ein Script, dass die gesuchten Downloads automatisch ausführt?

Dabei sollten folgende drei Bedingungen erfüllt sein:

- Hol mir den 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11. und 12. Download von dieser Seite.
- Nimm dabei nur immer die aktuellste dort existierende Versionsnummer.
- Um das Ganze auch auf Rechnern von Bekannten ausführen zu können, sollen
  beliebige dieser Downloads (z.B. durch Auskommentieren) deaktivierbar sein, weil ja nicht immer alle Pakete gebraucht werden.

Ich brauche nur eine Batch oder ein Script, das die Downloads der richtigen Pakete durchführt.
Wenn diese erst mal auf meiner Platte sind, weiß ich, wie ich die weiter verarbeiten muss.

P.S.:
Es wäre alles kein Problem, wenn es irgendwo im Web eine kleine txt-Datei gäbe, in der nichts weiter als die aktuelle Versionsnummer steht, also ich meine wirklich absolut alleine in einer txt-Datei.

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #15 am: 14. Mai 2011, 23:25:01 »
Ich hab´s!  :)

Mit einer Unterstützung im englischen Miranda-Forum hab ich nun endlich, was ich wollte: Ein automatisches Miranda-Update.

Sorry, ich bin gerade zu faul, die REM´s zu übersetzen.  ;)

@echo off

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM    In case it is runing, Miranda will be stopped
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

kill /f miranda32

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM  Miranda´s trayicon, still visible, will be removed
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

systrayrefresh.exe -r-a-q-m

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM          Download of all required packages
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

REM ->>     If you need only the unicode.7z packages to be downloaded,             <<-
REM ->>            please add REM´s in front of the 2nd group                      <<-

wget -qO - http://update.miranda-im.org/update.xml | xml sel -t -v miranda/releases/releasestable/downloadunicodezip > dl1.txt
set /p file=<dl1.txt
set file2=%file:.7z=-contrib.7z%
echo.%file2% >> dl1.txt

wget -qO - http://update.miranda-im.org/update.xml | xml sel -t -v miranda/releases/releasestable/downloadansizip > dl2.txt
set /p file=<dl2.txt
set file3=%file:.7z=-contrib.7z%
echo.%file3% >> dl2.txt

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM            The dl.txt will be created
REM         according to the wanted packages
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

REM ->>         If you need only the unicode.7z packages to be downloaded,         <<-
REM ->>      please remove the REM in front of the next rename command below       <<-
REM ->>             and add it to the front of the next copy command               <<-

copy /b dl1.txt + dl2.txt dl.txt
REM rename dl1.txt dl.txt

if exist dl1.txt del /Q dl1.txt
if exist dl2.txt del /Q dl2.txt

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM      Now, the downloads will be performed here
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

wget -i dl.txt

del /Q dl.txt

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM             All packages will be copied
REM            to the default download folder
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

copy miranda-im*.7z D:\Downloads

del /Q miranda-im*.7z

cls

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo        Downloads of all packages are done!

ping -n 4 127.0.0.1 >nul

cls

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   All packages will be extracted into the wanted folders
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

REM ->> Please remove the REM´s for each path you want the packages to be extracted to <<-


REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   The packages will now be extracted to thumb drive [O:\]
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

C:\Programme\7-Zip\7z x -y miranda-im-*-unicode.7z -aoa -o"O:\Portable Apps\MirandaPortable\App\miranda" *.* -r -x!mirandaboot-example.ini

C:\Programme\7-Zip\7z x -y miranda-im-*-ansi.7z -aoa -o"O:\Portable Apps\MirandaPortable\App\miranda_ansi" *.* -r -x!mirandaboot-example.ini

C:\Programme\7-Zip\7z x -y miranda-im-*-unicode-contrib.7z -aoa -o"O:\Portable Apps\MirandaPortable\App\miranda" *.* -r -x!mirandaboot-example.ini

C:\Programme\7-Zip\7z x -y miranda-im-*-ansi-contrib.7z -aoa -o"O:\Portable Apps\MirandaPortable\App\miranda_ansi" *.* -r -x!mirandaboot-example.ini


REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   The packages will now be extracted to thumb drive [P:\]
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

C:\Programme\7-Zip\7z x -y miranda-im-*-unicode.7z -aoa -o"P:\- Mob.- PC\Portable Apps\MirandaPortable\App\miranda" *.* -r -x!mirandaboot-example.ini

C:\Programme\7-Zip\7z x -y miranda-im-*-ansi.7z -aoa -o"P:\- Mob.- PC\Portable Apps\MirandaPortable\App\miranda_ansi" *.* -r -x!mirandaboot-example.ini

C:\Programme\7-Zip\7z x -y miranda-im-*-unicode-contrib.7z -aoa -o"P:\- Mob.- PC\Portable Apps\MirandaPortable\App\miranda" *.* -r -x!mirandaboot-example.ini

C:\Programme\7-Zip\7z x -y miranda-im-*-ansi-contrib.7z -aoa -o"P:\- Mob.- PC\Portable Apps\MirandaPortable\App\miranda_ansi" *.* -r -x!mirandaboot-example.ini


REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   The packages will now be extracted to the local machine
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

C:\Programme\7-Zip\7z x -y miranda-im-*-unicode.7z -aoa -o"C:\Program files\Miranda IM" *.* -r -x!mirandaboot-example.ini

C:\Programme\7-Zip\7z x -y miranda-im-*-unicode-contrib.7z -aoa -o"C:\Programme\Miranda IM" *.* -r -x!mirandaboot-example.ini

ping -n 4 127.0.0.1 >nul

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM             Since they are already copied
REM             to the default download folder
REM                the downloaded packages
REM          will be deleted in the current folder
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

del .\miranda*.7z

cls

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo         All installations are done!

ping -n 6 127.0.0.1 >nul

cls
« Letzte Änderung: 15. Mai 2011, 01:46:27 von madmax25 »

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #16 am: 22. August 2011, 17:53:45 »
Hier nochmal eine verbesserte Version der MIM-Update.bat:

Ist nicht unbedingt schön, mit der schwarzen DOS-Box,
aber klappt (sollte zumindest  ;) ).
Wenn die Miranda-Update-Meldung kommt, einfach abbrechen und ersatzweise die MIM-Update.bat ausführen (am besten vorher auf den Desktop verknüpfen).

Es wird vorausgesetzt, dass die als Plugin verfügbare mimcmd.exe im Miranda-Ordner steckt und dass sich die MIM-Update.bat hier befindet:

C:\Programme\GnuWin32\bin\MIM-Update.bat

Hierfür muss das Tool Wget for Windows installiert sein.
Es wird ferner vorausgesetzt, dass auf C: ein Standard-Download-Ordner namens Downloads existiert.

Zu den Voraussetzungen sollte man vielleicht noch hinzufügen, dass die Existenz des Ordners C:\Downloads nur zu Backup-Zwecken der gedownloadeten Pakete dient. Möchte man diese Pakete nicht behalten, kann man den entsprechenden Befehl im Script auch mit einem REM auskommentieren.

Die Installationen für die USB-Sticks (auf dem im Beispiel-Script benutzten Rechner O: und P:) sind hier per REM auskommentiert, also deaktiviert und müssen bei Bedarf hinsichtlich der Pfade an die eigenen Verhältnisse angepasst werden.
Näheres in den REM-Comments über den jeweiligen Abschnitten.

Inhalt der MIM-Update.bat :

@echo off

REM +--------------------------------------------------+
REM +--------    MIRANDA-IM AUTO-UPDATER    -----------+
REM +--------------------------------------------------+

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   This 'MIM-Update.bat' will download and install
REM               all required packages to
REM      each of the folders you've once set below.
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM    In case it is running, Miranda will be closed
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

"C:\Programme\Miranda IM\mimcmd.exe" quit

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM         Download of all required packages
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

REM ->> If you need both the unicode.7z and the ansi.7z packages to be downloaded, <<-
REM ->>          please remove the REM´s in front of the 2nd group                 <<-

wget -qO - http://update.miranda-im.org/update.xml | xml sel -t -v miranda/releases/releasestable/downloadunicodezip > dl1.txt
set /p file=<dl1.txt
set file2=%file:.7z=-contrib.7z%
echo.%file2% >> dl1.txt

REM wget -qO - http://update.miranda-im.org/update.xml | xml sel -t -v miranda/releases/releasestable/downloadansizip > dl2.txt
REM set /p file=<dl2.txt
REM set file3=%file:.7z=-contrib.7z%
REM echo.%file3% >> dl2.txt

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM            The dl.txt will be created
REM         according to the wanted packages
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

REM ->> If you need both the unicode.7z and the ansi.7z packages to be downloaded, <<-
REM ->>       please remove the REM in front of the next copy command below        <<-
REM ->>           and add it to the front of the next rename command               <<-

REM copy /b dl1.txt + dl2.txt dl.txt
rename dl1.txt dl.txt

if exist dl1.txt del /Q dl1.txt
if exist dl2.txt del /Q dl2.txt

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM      Now, the downloads will be performed here
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

wget -i dl.txt

del /Q dl.txt

if not exist ".\miranda*.7z" goto :FAIL

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM             All packages will be copied
REM            to the default download folder
REM +++++++++++++++++++++++++++++++++++++++++++++++++++++

copy miranda-im*.7z C:\Downloads

cls

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo        Downloads of all packages are done!
echo.
echo          Downloads aller Pakete fertig!

ping -n 4 127.0.0.1 >nul

cls

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   All packages will be extracted into the wanted folders
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

REM ->> Please remove the REM´s for each path you want the packages to be extracted to <<-


REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   The packages will now be extracted to thumb drive [O:\]
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

REM C:\Programme\7-Zip\7z x -y miranda-im-*-unicode.7z -aoa -o"O:\Portable Apps\MirandaPortable\App\miranda" *.* -r -x!mirandaboot-example.ini

REM C:\Programme\7-Zip\7z x -y miranda-im-*-ansi.7z -aoa -o"O:\Portable Apps\MirandaPortable\App\miranda_ansi" *.* -r -x!mirandaboot-example.ini

REM C:\Programme\7-Zip\7z x -y miranda-im-*-unicode-contrib.7z -aoa -o"O:\Portable Apps\MirandaPortable\App\miranda" *.* -r -x!mirandaboot-example.ini

REM C:\Programme\7-Zip\7z x -y miranda-im-*-ansi-contrib.7z -aoa -o"O:\Portable Apps\MirandaPortable\App\miranda_ansi" *.* -r -x!mirandaboot-example.ini


REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   The packages will now be extracted to thumb drive [P:\]
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

REM C:\Programme\7-Zip\7z x -y miranda-im-*-unicode.7z -aoa -o"P:\- Mob.- PC\Portable Apps\MirandaPortable\App\miranda" *.* -r -x!mirandaboot-example.ini

REM C:\Programme\7-Zip\7z x -y miranda-im-*-ansi.7z -aoa -o"P:\- Mob.- PC\Portable Apps\MirandaPortable\App\miranda_ansi" *.* -r -x!mirandaboot-example.ini

REM C:\Programme\7-Zip\7z x -y miranda-im-*-unicode-contrib.7z -aoa -o"P:\- Mob.- PC\Portable Apps\MirandaPortable\App\miranda" *.* -r -x!mirandaboot-example.ini

REM C:\Programme\7-Zip\7z x -y miranda-im-*-ansi-contrib.7z -aoa -o"P:\- Mob.- PC\Portable Apps\MirandaPortable\App\miranda_ansi" *.* -r -x!mirandaboot-example.ini


REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   The packages will now be extracted to the local machine
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

C:\Programme\7-Zip\7z x -y miranda-im-*-unicode.7z -aoa -o"C:\Programme\Miranda IM" *.* -r -x!mirandaboot-example.ini

C:\Programme\7-Zip\7z x -y miranda-im-*-unicode-contrib.7z -aoa -o"C:\Programme\Miranda IM" *.* -r -x!mirandaboot-example.ini

ping -n 4 127.0.0.1 >nul

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM             Since they are already copied
REM             to the default download folder
REM                the downloaded packages
REM          will be deleted in the current folder
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

del .\miranda*.7z

cls

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo         All installations are done!
echo.
echo         Alle Installationen fertig!

ping -n 8 127.0.0.1 >nul

cls

start "" "C:\Programme\Miranda IM\miranda32.exe" /b

cls
exit

:FAIL

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM     If MIM server is online, but no 7z is available,
REM             MIM-update will now be cancelled
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

del ".\current-MIM.txt"

cls

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo           Server online, but no 7z-packages found! Update cancelled!
echo.
echo        Server online, aber keine 7z-Pakete gefunden! Update abgebrochen!

ping -n 10 127.0.0.1 >nul

start "" "C:\Programme\Miranda IM\miranda32.exe" /b

cls

exit

cls

EDIT:
- Am Anfang ein paar REM's zugefügt, zwecks stilistischer Angleichung an die folgenden Scripte.
- Abfrage, ob gedownloadete Pakete existieren und Abschnitt :FAIL hinzugefügt,
  um das Problem "Server online, aber Pakete trotzdem nicht verfügbar" zu korrigieren.
« Letzte Änderung: 17. Februar 2012, 18:35:24 von madmax25 »

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #17 am: 26. August 2011, 01:25:19 »
@ CHEF-KOCH

Da ich im Wiki nicht angemeldet bin und meine IP (wenn auch nur dynamisch) auch nicht so gerne dort hinterlassen möchte, könntest Du bitte den Abschnitt über der grünen Box ein wenig abändern?

Vielleicht könnten wir uns eher auf den folgenden Text einigen?:

Zitat
Der Nutzer madmax25 hat ein kleines Script geschrieben, das mittels Wget ein automatisches Update durchführen kann.
Der Vorteil ist dabei, dass hier alle Miranda-IM-Versionen unterstützt werden, ANSI und UNICODE und dass alle Installationen entsprechend der im Script enthaltenen Pfade in einem Rutsch durchgeführt werden.
Der Nachteil ist hierbei, dass man zusätzliche Software benötigt, eben WGet und im Hauptverzeichnis von Miranda IM muss die mimcmd.exe liegen, sowie in dessen Plugins-Ordner die CmdLine.dll.
Es wird ebenso vorausgesetzt, dass C:\Downloads\ vorhanden ist. Dieser Ordner dient dabei jedoch nur zu Backup-Zwecken der gedownloadeten Pakete.
Möchte man die Pakete nicht behalten, kann man den entsprechenden Befehl im Script auch mit einem REM auskommentieren. Sollte man andere Pfade als im Script nutzen, lassen sich diese dort beliebig anpassen.

Und hier hast Du u.a. eine readme.txt, die man, wie ich meine, vielleicht etwas allgemeiner formulieren sollte.
Aus dem Klammerinhalt "auf meinen Rechner O: und P:" könnte man besser "auf dem für das Script benutzten Rechner O: und P:" machen, denn "...auf meinem Rechner..." wirkt dort etwas deplatziert.

Auch frage ich mich, ob man 7-Zip nicht auch noch als Voraussetzung erwähnen sollte.
Obwohl dessen Notwendigkeit ja eigentlich unübersehbar aus dem Script hervorgeht und die meisten es vermutlich eh schon haben werden.
« Letzte Änderung: 26. August 2011, 01:28:42 von madmax25 »

CHEF-KOCH

  • Akkordschreiber
  • ***
  • Beiträge: 650
  • ~inSiDeR~
    • CHEF-KOCH@draugr.de"
    • Profil anzeigen
    • PhoenixBBS
Re:Update automatisieren mit Wget?
« Antwort #18 am: 26. August 2011, 01:38:13 »
Hi, ich habe alles angepasst wie gewünscht.

Aber sei dir bewusst das ich gerne und öfters mal alles um schmeiße und Umgestalte, es kann sich also noch in näherer Zukunft etwas ändern.


Grüße
CK
Do not question my results, i will not fail!
You are nothing! I'm a warrior, the prince of all!

▬▬▬▬▬▬▬▬▬▬▬▬▬ ஜ۩۞۩ஜ ▬▬▬▬▬▬▬▬▬▬▬▬▬

SHUT UP AND ENJOY THE MUSIC!
44 43 6F 72 65 20 2F 20 4A 4D 59 43   

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #19 am: 26. August 2011, 04:05:34 »
Ist ok!  ;)
Der Gesamtkontext wird schon irgendwie erhalten bleiben, vermute ich mal.

Ansonsten: Danke für die Anpassungen!

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #20 am: 10. Oktober 2011, 17:40:09 »
Achtung:
Der hier angebotene Updater funktioniert derzeit nicht (ich hoffe, nur vorübergehend),
weil die Seite http://update.miranda-im.org/update.xml (auf der der Updater basiert),
ebenso wie die ganze miranda-im.org-Seite, offenbar gerade nicht erreichbar ist.

EDIT:
Hat sich erledigt.
Seite und Updater gehen wieder.
« Letzte Änderung: 10. Oktober 2011, 19:40:37 von madmax25 »

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #21 am: 07. Dezember 2011, 19:07:00 »
Hi, Leute!

Hab mal wieder was ausgeheckt.  :)

Das bisherige Auto-Updater-Script konnte nicht
selbstständig die Existenz von neueren Miranda-Versionen prüfen.

Diesen Nachteil gleicht der folgende Update-Checker aus.
Er bezieht sich auf das bisherige Script, welches er fast am Ende aufruft.

Somit wird ein vollautomatisches Miranda-Update möglich,
in Abhängigkeit davon, ob ein solches überhaupt existiert.

Die Voraussetzungen hinsichtlich der erforderlichen weiteren Software
bzw. vorhandener Ordner entsprechen ohne Änderung dem bisherigen Updater-Script.
D.h. auch, der Update-Checker muss hier sein...
C:\Programme\GnuWin32\bin

Wer mag, kann ihn in den Autostart verknüpfen oder im Windows-Taskplaner verwenden.
Bei Verwendung dieses Update-Checker-Scriptes kann die Update-Benachrichtigung
innerhalb von Miranda deaktiviert werden.

Bitte beachten:
Beim ersten Start wird noch eine notwendige txt-Datei erzeugt.
Die eigentliche Aufgabe erfüllt der Update-Checker ab dem zweiten Start.

Hier der Code:

@echo off

REM +--------------------------------------------------+
REM +------      MIRANDA-IM UPDATE-CHECKER      -------+
REM +--------------------------------------------------+

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM     This 'MIM Update-Checker.bat' will find out,
REM     if there is a new MIM version available and
REM     if yes, the 'MIM-Update.bat' will be started
REM    to download and install the required packages.
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

if exist ".\old-MIM.txt" goto :GETVERSION

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo   First run of this Update-Checker. Run it again, please.
echo.
echo Erster Start dieses Update-Checkers. Bitte nochmal starten.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.

ping -n 6 127.0.0.1 > nul

cls

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM   Current MIM-Version is being written in txt file
REM    and renamed to be used as the previous version
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

echo. > ".\old-MIM.txt"

wget -qO - http://update.miranda-im.org/update.xml | xml sel -t -v miranda/releases/releasestable/downloadunicodezip > ".\current-MIM.txt"

ping -n 6 127.0.0.1 > nul

goto :END

cls

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM             MIM-version is checked here
REM          and decision is made, how to go on
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

:GETVERSION

wget -qO - http://update.miranda-im.org/update.xml | xml sel -t -v miranda/releases/releasestable/downloadunicodezip > ".\current-MIM.txt"

cls

ping -n 6 127.0.0.1 > nul

fc ".\current-MIM.txt" ".\old-MIM.txt" > nul

if errorlevel 1 goto :OLDVERSION

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM      No difference between installed MIM version
REM            and server version was found
REM           So, the update will be skipped.
REM             Script will be stopped now.
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo No MIM update available. Latest version installed already!
echo.
echo Kein MIM-Update vorhanden. Installierte Version ist aktuell!
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.

ping -n 6 127.0.0.1 > nul

goto :END

cls

:OLDVERSION

REM ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM       Difference between installed MIM version
REM             and server version was found.
REM            The update will be started now.
REM ++++++++++++++++++++++++++++++++++++++++++++++++++++

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Installed MIM version out-of-date. Starting 'MIM-Update.bat' now!
echo.
echo Installierte MIM-Version veraltet. 'MIM-Update.bat' startet jetzt!
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.

ping -n 6 127.0.0.1 > nul

cls

call ".\MIM-Update.bat"

:END

echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo   Process finished. This window will be closed in a moment!
echo.
echo   Vorgang beendet! Dieses Fenster wird gleich geschlossen!
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.

ping -n 6 127.0.0.1 > nul

cls

del /Q ".\old-MIM.txt"

ping -n 6 127.0.0.1 > nul

ren ".\current-MIM.txt" old-MIM.txt

cls

(Damit ich´s nicht vergesse:
Dieser Code dieses Beitrags hier kommt in eine neue txt-Datei rein, die man dann als Update-Checker.bat speichert.)

EDIT:
- Kleinere Korrekturen in den angezeigten Meldungen vorgenommen (Funktion aber unverändert) und
  zwecks stilistischer Angleichung an das bisherige Updater-Script noch ein paar erklärende REM´s eingefügt.
- Ebenfalls zur stilistischen Angleichung beider Scripte enthält das Updater-Script aus Beitrag #16 nun auch
  die deutschsprachige Version der beiden vorkommenden Meldungen.
- Tippfehler im Update-Checker korrigiert ("REM Scipt will be stopped now" -> "REM Script will be stopped now")
- Im Abschnitt ":GETVERSION" eine weitere Zeitschleife eingefügt, um dem Script mehr Zeit zu geben,
  die aktuelle MIM-Version zu erfassen bzw. die "current-MIM.txt" zu schreiben, z.B. bei
  Datenstau im PC (kann beim Booten ja durchaus mal passieren  ;) ) oder "unwilliger" Webverbindung.
- Script-Fehler im Update-Checker korrigiert, der insbesondere bei Ausführung im Taskplaner oft zu einer leeren "old-MIM.txt" geführt hat,
  an der wiederum der MIM-Versionsvergleich gescheitert ist, was letztlich einen überflüssigen Update-Vorgang ergab.
- Da leider immer noch eine leere old-MIM.txt entsteht, zwei weitere Zeitschleifen eingefügt,
  um dem Script (hoffentlich!) ausreichend Zeit zu geben, um die current-MIM.txt in old-MIM.txt umzubenennen.
- Beide Zeitschleifen wieder entfernt, weil nicht das Script die leere txt-Datei verursachte, sondern ein defekter Task.
- Da ich schon wieder nach Ausführung durch den Taskplaner diese verd***te leere old-MIM.txt hatte, habe ich nun beide
  Zeitschleifen im Checker-Script wieder drin, plus eine weitere Meldung, damit sich niemand wundert,
  dass das Fenster länger offen bleibt.
- Die zuletzt zugefügte Zeitschleife hat das Problem mit der leeren old-MIM.txt offenbar gelöst,
  sodass diese Datei nun auch bei evtl. Datenstau richtig erzeugt wird.
- Am Anfang ein paar REM's zugefügt, zwecks stilistischer Angleichung der Scripte

Es kommt vor, dass die Web-Verbindung beim Booten nicht sofort verfügbar ist und stattdessen noch ein wenig Zeit zum Aufbau braucht.
Wenn dieses Script beim Booten starten soll, ist es in solchen Fällen ratsam, es mit einer Verzögerung (z.B. von 2 Minuten) auszuführen,
da andernfalls der MIM-Versionsvergleich scheitern könnte und entsprechend ein überflüssiger Update-Vorgang stattfindet.
Um eine solche Verzögerung zu realisieren, ohne dass während der Wartezeit eine schwarze DOS-Box erscheint,
eignet sich u.a. das Tool BatchRun recht gut.
Um damit erstellte Scripte schön diskret im Hintergrund laufen zu lassen,
sollte man in den BatchRun-"Settings" unter "Show" alles außer "Toolbar" abhaken.
« Letzte Änderung: 17. Februar 2012, 18:43:36 von madmax25 »

Quotengrote

  • Tastaturquäler
  • **
  • Beiträge: 266
  • Geschlecht: Männlich
  • Im Wiki, Forum & MUC zu finden!
    • Profil anzeigen
    • mgrote.net
Re:Update automatisieren mit Wget?
« Antwort #22 am: 07. Dezember 2011, 22:07:13 »
Funktioniert hier einwandfrei. DANKE!
JID: michael.grote@jabber.ccc.de | ICQ: 311322478 | - mgrote.net -

Kein Support per Mail/IM!

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget?
« Antwort #23 am: 07. Dezember 2011, 23:43:44 »
Freut mich, wenn es geklappt hat!  ;)

Jetzt sollte mir nur noch was einfallen, wie ich das Update ferngesteuert auf einem anderen Rechner starten kann.
Dann könnte man, ausgehend von einem Rechner, alle Miranda-Installationen im Heimnetz zugleich oder nacheinander starten,
ganz egal, ob auf dem Hauptrechner, auf USB-Sticks oder auf jedem ggf. vorhandenen weiteren Rechner. :)

Na mal sehen, was sich noch so ergibt.

EDIT:
Eine nochmalige Überlegung ergab, dass ich das ferngesteuerte Update via Heimnetz weg lasse.
Wenn der Update-Checker im Autostart oder im Taskplaner ist, läuft das Update ja eh schon automatisch.
Dann noch so ein ferngesteuertes Update einzubauen, ist im Prinzip völlig überflüssig.
« Letzte Änderung: 09. Dezember 2011, 19:53:14 von madmax25 »

madmax25

  • Tastaturquäler
  • **
  • Beiträge: 300
    • http://forum.miranda-im.de/index.php?topic=10.msg62307#msg62307"
    • Profil anzeigen
Re:Update automatisieren mit Wget
« Antwort #24 am: 22. Dezember 2011, 05:02:35 »
Da ich nach der Ausführung des Updates durch den Taskplaner leider immer wieder eine leere old-MIM.txt bekomme, bitte ich um Feedback.

@ alle, die es evtl. benutzen

Ich habe im Beitrag #21 das Script noch mal abgeändert (siehe auch dort im Abschnitt "Edit:"), in der Hoffnung, das Problem damit gelöst zu haben.
Seltsamerweise tritt der Fehler nur auf, wenn ich das Script zum vorbestimmten Zeitpunkt im Taskplaner laufen lasse.
Starte ich die Update-Checker.bat manuell, also per Mausklick oder auch, wenn ich den Task im Taskplaner per Rechtsklick>Ausführen starte, läuft alles nach Plan.

Sobald ich mich aber auf den Taskplaner verlasse, wird zwar Miranda geupdatet, aber beim nächsten Start des Tasks im Taskplaner (sofern noch keine neuere MIM-Version existiert) wird aufgrund der leeren old-MIM.bat nicht erkannt, dass die aktuelle Version bereits installiert ist. Das führt dann zu überflüssigen Update-Vorgängen.

Habt Ihr auch diese leere .txt-Datei (in "C:\Programme\GnuWin32\bin"), oder steht bei Euch die aktuelle Versionsnummer drin (die also beim nächsten Update die alte Version ist)?

EDIT:
Nach einigen weiteren Testläufen stellte es sich inzwischen heraus, dass nicht das Update-Checker-Script fehlerhaft war, sondern mein Task im Taskplaner bezog sich noch auf eine ältere Version des Scriptes, was durch Entfernen des bisherigen Tasks und  Erstellen eines neuen zu beseitigen war.
Daraus folgt, dass man das Script nun doch wieder als funktionsfähig betrachten kann.

Sorry, wegen dem Chaos der letzten paar Tage!  ;)
« Letzte Änderung: 17. Februar 2012, 18:41:49 von madmax25 »