nach dem neustart einmalig *.bat abarbeiten...

  • hi,

    ich habe ein script nun verfasst welches mir aus der regestry einen gewissen schlüssel ausliest und dies in eine *.bat schreibt die ich ihm autostart Verzeichnis speichere. In der *.bat steht zusätzlich noch der Befehl zum löschen drin.
    Wenn ich jetzt also das script starte stoppt es erstmal die dienste von dem Programm dannacht schaut es in der regestry wo das Programm ist schreib die Infos in die *.bat Datei und fängt an ein paar regestry einträge zu entfernen danach wird neu gestartet jetzt läuft natürlich die *.bat ab da sie ja im autostart steht.

    Bis hier funktioniert alles super. Aber nachdem nun einmal neu gestartet wurde und das script das Verzeichnis entfernt hat sollte es auch nicht beim nächsten neustart wieder da sein wie kann ich es also am besten nach dem neustart entfernen aus dem autostart?
    Oder gibt es eine andere Möglichkeit ein Script einmalig nach einem Neustart anzuwerfen?

    Viele Grüße
    Marc

    • Offizieller Beitrag

    Hi,

    bau das ganze doch gleich mit Autoit. Und dann läßt du das Autoitslript nach dem Start ausführen.

    Als erstes im Skript prüfst du per RegRead oder ähnliches, welche Situation vorhanden ist und dann kannst du entweder:

    Ablauf initiieren

    oder

    abbrechen.

    So long,

    Mega

    P.S.: Könntest das Skript sich dann auch selbst löschen lassen.

  • hab es doch mit autoit gebaut hier mal wie es aussieht:

    da ich es auf verschienden Windwos versionen laufen lassen muss bis hin zu WinNT muss ich aus der regestry auslesen wo das autostart verzeichnis isz was ich hinter "$reg2" steht und dahin kopiere ich die dann erstellt datei. was muss ich den machen damit autoit das selbständig macht. Wichtig ist halt nur das erst nach dem neu start kann ich das verzeichnis löschen und nicht früher.

  • Also '@StartupCommonDir' gibt das Autostart-Verzeichnis zurück. Dort kannst du ja eine Exe hinterlegen die dann das Verzeichnis löscht. Oder hab ich noch was nicht verstanden?

  • ich habe ja das Verzeichnis lese es ja aus der regestry aus da ich nicht weiß ob das kommando auch auf WinNT Rechner geht.
    Ich kann die datei ja auch dort hinterlegen nur soll sie nur einmal dort abgearbeitet werden und dann nie wieder weil wenn ich den PC morgen wieder starte ist die Softwarew ja schon wieder runter von PC warum sollte er das nochmal durchlaufen...
    ausserdem sieht es blöd aus wenn jedenmorgen erstmal kurz die *.bat anstartet

    lg
    Marc

  • Okay, vielleicht hilft dir das hier weiter. Damit kannst du die Exe nach dem Ausführen sich selbst 'vernichten' lassen.

    • Offizieller Beitrag

    Hi,

    verstehe das Problem nicht. Du baust die exe packst sie in den Autoitstart. Nach dem Boot wird sie ausgeführt. Im else Zweig bei der Überprüfung wird beim zweiten mal festestellt, es ist bereits installiert. Anschließend löscht die exe sich selbst.

    Damit wäre nach dem zweiten Booten (wenn benötigt) alles erledigt.

    So long,

    Mega

  • Edit]
    Ok ich hab den Vorschlag von th.meger nicht richtig gelesen. Ivch denke das wäre die eleganteste Lösung.
    Aber meins müsste auch gehen :stolz_bin:[


    [Original]
    Es ist aber keine elegante Lösung das Script bei jedem start auszuführen und einfach zu prüfen ob es schonmal gelaufen ist oder nicht. Es bleibt ja dann für immer und ewig im Autostart drin stehen.

    Ich würde mit dem RunOnce RegistryKey arbeiten und dort dann die Verknüpfung zu dem Batch File machen.
    --> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

    Am Ende des Batch Files kann man ja veranlassen das es sich selbst löscht (funktioniert hab ich getestet einfach "del /f c:\pfad\meinebatch.bat")

    Dann wird die Sache nur einmal ausgeführt und danach nie wieder, außerdem bleiben keine altlasten zurück.

    Was meint ihr dazu?

    c ya
    Paddy

    Einmal editiert, zuletzt von PaddyM (15. März 2007 um 14:07)

  • Sowohl th.meger und auch ich haben (eigentlich) dasselbe gesagt : Nämlich das sich die Exe selbst löscht. Ob nun am Ende des ersten Runs und beim zweiten mal. Also es gibt viele Möglichkeiten das zu realisieren... ;)

    Edit : Das Alien ist einfach zu schnell für mich... ;)

    Einmal editiert, zuletzt von JanSchmidt (15. März 2007 um 14:09)

  • ja das war es ich bin einfach nicht auf die Idee gekommen das ich eine Datei löschen kann die gerade geöffnet ist.

    Ist mir eh ein Rätsel wir er das macht weil ich ja aus der Datei lese und sie gleichzeitg lösche?

    naja es geht das ist wieder das Wichtigste

    Super Danke und Viele Grüße
    Marc