CMD-Befehle in AutoIT...

  • Es reisst nicht ab...

    Gibt es eine Möglichkeit einfache CMD-Befehle in AutoIT zu verwenden ??

    Beispiel:

    Code
    if not exist "C:\RegistryBackup" mkdir "C:\RegistryBackup"


    Wenn das Verzeichnis noch net existiert -> Machen

    Code
    if exist "C:\RegistryBackup\regbackup.reg" del "C:\RegistryBackup\regbackup.reg"


    Gibt schon eine Sicherung ? -> Weg damit

    Code
    regedit /e "C:\RegistryBackup\regbackup.reg"


    Sichere die Registry unter C:\RegistryBackup\regbackup.reg


    Prüfen ob ein Verzeichnis existiert krieg ich hin, Verzeichnis erstelle auch aber dann verliessen sie mich ?(

    Huh... Ideen ohne Ende, das mir fast die Birne platzt und soo planlos :cursing:

    3 Mal editiert, zuletzt von Mike280399 (22. September 2011 um 14:47)

  • Code
    if not exist "C:\RegistryBackup" mkdir "C:\RegistryBackup"


    Wenn das Verzeichnis noch net existiert -> Machen

    [autoit]

    If Not FileExists("C:\RegistryBackup") Then
    DirCreate("C:\RegistryBackup")
    EndIf

    [/autoit]
    Code
    if exist "C:\RegistryBackup\regbackup.reg" del "C:\RegistryBackup\regbackup.reg"


    Gibt schon eine Sicherung ? -> Weg damit

    [autoit]

    If FileExists("C:\RegistryBackup\regbackup.reg") Then
    FileDelete("C:\RegistryBackup\regbackup.reg")
    EndIf

    [/autoit]
    Code
    regedit /e "C:\RegistryBackup\regbackup.reg"


    Sichere die Registry unter C:\RegistryBackup\regbackup.reg

    [autoit]

    RegRead

    [/autoit]

    Und des weiteren gibt es etwas ganz tolles. Es nennt sich die Hilfe in der das alles in maximal 5 Minuten gefunden hättest.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • :wacko: Danke....

    Owei ihr müsst langsam echt den Eindruck gewinnen das ich zu dusselig bin in der Hilfe zu suchen...
    Mein Hauptproblem ist meisstens das ich nicht weiss wonach ich eigentlich genau suchen soll...

    Vielen, vielen Dank! :S

  • das ist jetzt kein Angriff, aber eine so schöne und sinnvolle benahmung der funcs findest du wohl in keiner anderen programmiersprache.
    ich tippe in die autoit-hilfe/ index einfach immer den anfang von dem ein, was ich machen will. falls ich da mal nicht fündig werde, suche ich einfach unter "suche" und geh die ergebnisse durch.

    und die hilfe gibts ja sowohl auf deutsch, als auch auf englisch ;)

  • @progandy
    Das ist sicher eine gute Idee weil regedit durchaus bei aktivierten UAC nicht funktioniert
    oder die Exe nicht von allen Usern genutzt werden darf/kann. (Domäne / GPO etc.)

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Momentan löse ich`s so

    [autoit]


    ShellExecuteWait("Regbackup.cmd")

    [/autoit]

    Regbackup.cmd:

    Code
    if not exist "C:\RegistryBackup" mkdir "C:\RegistryBackup"
    if exist "C:\RegistryBackup\regbackup.reg" del "C:\RegistryBackup\regbackup.reg"
    regedit /e "C:\RegistryBackup\regbackup.reg"

    Was macht`n nu mehr Sinn ?
    So wie ich`s im Moment löse oder doch per AuoIT-Skript ?

    *verwirrtbin*

  • Jetzt mal ganz ehrlich Mike280399, willst du Autoit oder batch lernen?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Args! Bist Du schnell.... 8|

    AutoIT... im Vordergrund steht allerdings die Zuverlässigkeit/Funktionalität und nicht das was ich möchte :D

    BTW: RegRead und RegWrite hab ich mir zu Gemüte geführt, was ich noch nicht so ganz begreife ist wie ich`s hinbekomme das das Gelesen auch als Datei in den Ordner gepackt wird...
    Ich les`Mal weiter...

    #EDIT: Nachteile:

    Will man Einstellungen zb auf den USB-Stick oder einfach nur auf der Festplatte sichern, muss man sich entweder die Werte raussschreiben, oder das ganze durch ein anderes Script machen lassen, was wiederum ziemlich umständlich ist.

    Quelle: http://wiki.autoit.de/wiki/index.php/Tutorial#Registry

    Einmal editiert, zuletzt von Mike280399 (22. September 2011 um 13:42)

  • *lach* dann solltest dir erst klar darüber werden was du möchtest und dich dann für eines von beidem entscheiden ;). Es ist nämlich recht sinnfrei eine Batch mit Autoit aufzurufen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • *lach* dann solltest dir erst klar darüber werden was du möchtest und dich dann für eines von beidem entscheiden ;). Es ist nämlich recht sinnfrei eine Batch mit Autoit aufzurufen.


    Guck Mal Post (#EDIT) :P

    Logo das das einen Anfänger wie mich irritiert oder ? :rolleyes:

  • Keine Ahnung was mit deinem Edit meinst hehe. Aber ändert nichts daran, dass dich erstmal für eine Sache entscheiden solltest. Es macht schlicht keinen Sinn batch und autoit auf diese weiße wie du es machst zu mixen. Da man alles was mit batch geht auch mit Autoit kann und noch viele mehr.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Meinte den Auszug ausm Wiki:


    Dort steht: Will man Einstellungen zb auf den USB-Stick oder einfach nur auf der Festplatte sichern, muss man sich entweder die Werte raussschreiben, oder das ganze durch ein anderes Script machen lassen, was wiederum ziemlich umständlich ist.

    So etwas verwirrt einen Anfänger natürlich...
    Wenns nach mir geht, am liebsten alles per AutoIT lösen. - > Entscheidung gefallen :D

    RegWrite / RegRead -> Check :D
    Reg-Werte in Datei schreiben -> Fehlanzeige ?(

  • Meinte den Auszug ausm Wiki:


    Dort steht: Will man Einstellungen zb auf den USB-Stick oder einfach nur auf der Festplatte sichern, muss man sich entweder die Werte raussschreiben, oder das ganze durch ein anderes Script machen lassen, was wiederum ziemlich umständlich ist.

    Das bezieht sich darauf, wenn du Sachen mit Autoit in der Registry schreibst und dann dein Script auf USB-Stick an anderen Rechner mitnimmst es evtl. ncihtmehr geht weil da ja die Registryeinträge nicht sind. Deshalb fängt steht auch dort "Will man Einstellungen" ;).

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Also wenn ich das mal sagen darf es ist echt verdammt schwierig immer alle deine Fragen zu beantworten, du hast noch kein Prob alleine lösen können....

    du hast dein Programm... > was für Dinge willst du speichern? Größe des Fensters? ,Speicherort von irgend was ??
    das machst du am besten mit einer ini oder von mir aus txt Datei siehe "iniRead" bzw "iniWrite" Befehle >> Hilfe .. jede der beiden Funktionen sind zu genüge erklärt, und sollte selbst dies nicht reichen gibt es etliche Beispiele hier im Forum oder gidf.de

    Gruß Marvin

  • Hier:

    Spoiler anzeigen
    [autoit]

    If Not FileExists("C:\RegistryBackup") Then
    DirCreate("C:\RegistryBackup")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists("C:\RegistryBackup\regbackup.reg") Then
    FileDelete("C:\RegistryBackup\regbackup.reg")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    RunWait(@COMSPEC & ' /c regedit /e "C:\RegistryBackup\regbackup.reg"')

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Also wenn ich das mal sagen darf es ist echt verdammt schwierig immer alle deine Fragen zu beantworten, du hast noch kein Prob alleine lösen können....

    du hast dein Programm... > was für Dinge willst du speichern? Größe des Fensters? ,Speicherort von irgend was ??
    das machst du am besten mit einer ini oder von mir aus txt Datei siehe "iniRead" bzw "iniWrite" Befehle >> Hilfe .. jede der beiden Funktionen sind zu genüge erklärt, und sollte selbst dies nicht reichen gibt es etliche Beispiele hier im Forum oder gidf.de

    Gruß Marvin

    Du kannst Dir gar nocht vorstellen wie viele Probs/Hürden ich schon allein genommen habe...
    Wie schon erwähnt ist es in den meissten der Fälle so, das ich gar keine Ahnung habe wonach ich überhaupt suchen soll...
    Ist wieder das Beste Beispiel: @COMSPEC 8|
    Woher zum $&$§% soll ich als blutiger Anfänger wissen das ich in der Hilfe nach @COMSPEC wühlen muss wenn ich im Kopf "Registry in Datei sichern" habe und vorher immer nur mit Batch und CMD-Files gearbeitet hab ?
    Versteh mich net falsch, will mich auf gar keinen Fall beschweren, ganz im Gegenteil... Manchmal ist es sicherlich durchaus Sinnvoll so`n "Huhu schalt Mal Dein Hirn ein" rauszuhauen, aber das mache ich :D Kannste glauben :D

    Danke@Chip
    Wie gesagt, hätte ich @COMSPEC irgendwie durch Hilfe oder anderes herleiten können, wäre ich vielleicht selbst drauf gekommen :)
    Vielleicht bin ich auch einfach nur zu blöd :cursing: Scheint der allgemeine Tenor zu sein grad :S
    Werd mich vorerst Mal mit Fragen zurückhalten...

  • Also in der Hilfe steht doch alles eben geschaut

    Hilfe > gesucht nach dem Befehl "Run"
    dann ein wenig runter Scrollen und Tada

    Zitat

    Remarks

    Paths with spaces need to be enclosed in quotation marks.

    To run DOS (console) commands, try Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE) ; don't forget " " before "/c"

    After running the requested program the script continues. To pause execution of the script until the spawned program has finished use the RunWait function instead.

    :P Gruß Marvin


  • Wie gesagt, hätte ich @COMSPEC irgendwie durch Hilfe oder anderes herleiten können, wäre ich vielleicht selbst drauf gekommen :)

    Geh in die Hilfe unter Punkt "Häufig gestellte Fragen (FAQ)" findest du:

    Spoiler anzeigen
    Zitat

    5. Wie kann ich DOS-Programme aus AutoIt heraus ausführen?
    Wenn du etwas wie den DOS-Befehl "dir" ausführen möchtest, dann musst du dazu den Kommandozeileninterpreter verwenden (je nach Betriebssystem ist das "command.com" oder "cmd.exe"). Das Makro @Comspec beinhaltet den korrekten Ort dieser Datei. Du solltest den RunWait()-Befehl verwenden, weil es auf die Beendigung des DOS-Programms abwartet, bevor die Ausführung des eigenen Skriptes fortgesetzt wird. Hier ein Beispiel, wie man den DOS-"dir"-Befehl auf das Laufwerk C:\ anwendet (tatsächlich wird folgendes ausgeführt: command.com /c Dir C:\ :(

    RunWait(@COMSPEC & " /c Dir C: ")

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.