Autoit vs. Solaris

  • Hallo zusammen,

    wir arbeiten mit einer Software die auf einem Solaris 9 aufgesetzt ist. In dieser Software sind verschiedene Mandanten die nicht jeden Tag bearbeitet werden. Ich möchte über Autoit ein sehr einfaches Programm erstellen das es einem Anwender möglich macht das Datum zu verändern. Hierzu startet autoit Putty verbindet sich darüber auf den Solaris Server, startet den Mandanten verlinkt uaf die Programmebene, alles kein Problem bis hier hin dann soll der Befehl [font='&quot']obx SY901M `date '+%Y%m%d'` Y ausgeführt werden, das würde z.B. im script so aussehen
    [/font]

    Code
    send ('obx SY901M `date '+%Y%m%d'` Y#{ENTER}')


    Die Fehlermeldung die ich erhalte Sieht wie folgt aus
    [font='&quot']send ('obx SY901M `date '+%Y%m%d'` Y#{ENTER}') 
    [font='&quot']send ('obx SY901M `date '+^Error[/font][/font]
    das Plus Zeichen ist allerdings für die Datumsmaskierung in Solaris notwendig.

    Hoffe es kann jemand helfen.....

    gruß

  • mal

    [autoit]


    send ("obx SY901M `date '+%Y%m%d'` Y#")
    send ("{ENTER}")

    [/autoit]


    probiert? also autoit drückt ja nur tasten und Putty schreib die gedrücken tasten dann auf ^^

    ich habs z.b um meinen Kyocera druckern druckerbefehle zu senden ^^ dess funzt auch ^^

    vlt ist eins der zeichen oben nicht "send"-konform, da gabs mal irgendwo ne liste *in der hilfe such*

  • Das Plus Zeichen ist wohl der Knackpunkt, aber genau das braucht Solaris....

  • eben steh ich auf dem Schlauch,,, was meinst Du mit Raw und (+) nimmt er nicht Solaris braucht den Befehl genauso wie er da steht
    obx SY901M `date '+%Y%m%d'` Y

    • Offizieller Beitrag

    eben steh ich auf dem Schlauch,,, was meinst Du mit Raw und (+) nimmt er nicht Solaris braucht den Befehl genauso wie er da steht
    obx SY901M `date '+%Y%m%d'` Y

    Hi,

    ich habe doch 3 Möglichkeiten aufgezählt. Entscheidend ist nicht was du in Autoit tippst, sondern was bei Solaris ankommt und wie es dort interpretiert wird!

    1.) Raw Mode 3ter Parameter = 1
    2) {+} anstatt +
    3) ASCII-Wert für +

    Wenn nichts davon hilft erschießen bzw. nochmal melden, dann tete ich selbst.

    Mega

  • Hi Xenobiologist,

    ich habe es jetzt verscuht aber entweder mache ich Grundlegend was Falsch oder es geht nicht. Beim Ausführen des scriptes sehe ich im Putty Fenster keine Reatkion auf die Anweisung....

    gruß

    stekna

  • Ja und Nein, je nachdem was ich mache läuft eine Endlosschleife durch "setzte neue Valuta - ungültiges Datum" oder ich kann Enter drücke ohne das, das Datum verändert wurde.
    Gerade eben habe ich festgestellt das er den Datebefehl schon gar nicht übergibt!!
    Ich habe den string -- send ('obx SY901M `date (ASC 43)%Y%m%d` Y#{ENTER}') -- Eingegeben
    dabie kommt in solaris das an
    SY901M `^@ate ......

    Wenn ich den Befehl aufdrössel
    send ('obx#{ENTER}')
    send ('SY901M#{ENTER}')
    bekomme ich die Abfrage "Bitte neue Valuta eingeben:" ok wäre auch einen Möglichkeit wie komme ich aber hier wieder zurück ins script?! dazu bin ich zu unbedarft.......

    Das unbedarft nehm ich zurück, wer Lesen und Basteln kann ist klar im Vorteil, sieht zwar sch.... aus aber es funzt :rock:

    3 Mal editiert, zuletzt von stekna (7. Mai 2008 um 16:43)

  • Ja wie gehts denn jetzt? Ich nehme an so:

    [autoit]

    Send("obx SY901M `date '+%Y%m%d'` Y#", 1)
    Send("{Enter}")

    [/autoit]


    Es geht leider nicht "in einem wisch", da sich der Raw-Mode nicht mit {ENTER} verträgt.

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

  • Hi,
    ich arbeite zwar mit solaris und Autoit nur über putty und ssh, aber eigentlich sollte es so gehen.

    Spoiler anzeigen
    [autoit]

    send ("obx SY901M `date "&chr(43)&"'%Y%m%d'` Y#")
    send ("{ENTER}")

    [/autoit]

    Aber wie gesagt geanu weis ich es auchnet.

    MfG
    Der_Doc

  • Moin,
    so ich habe folgendes getestet...

    auf einer Solaris9 Maschine den Befehl

    Code
    date +'%Y%m%d' Y#


    ich babe die "`" weggelassen weil meine Bash damit nix anfangen konnte.

    Habe das durch ein Programm gejagt (ohne Send("{Enter}") ) das brauche ich net weil es bei mir über ein Runkommando an die Solarismaschine versendet wird.
    Wenn ich jetzt den "StdOutRead" auslese bekomme ich folgendes zurück.

    Code
    20080508

    Ich weis nur leider net was das Y# bedeutet aber ich bekomme mit und ohne es die selbe Ausgabe.

    MfG
    Der_Doc

  • Hallo zusammen,

    so ich habe alle Eure Ideen getestet leider ohne erfolg!
    -- Der Befehl direkt in der Shell Funktioniert ohne Probleme, das Y bedeutet ein normales Yes in Verbindung mit dem obx SY901M Befehl.

    Code
    "obx SY901M `date '+%Y%m%d'` Y


    Aus irgendeinem Grund wird aus `date - `^@ate, ob das an der bash liegt?! obx ist ein befehlsinterpreter der im Grunde für "führe aus" steht. Ich habe das erstmal so eingegeben was zur Folge hat das der Anwender jetzt nach dem SY901M ein Datum eingeben muss z.B. 20080508, danach einmal Enter drückt und dann den Rest der 20sekunden abwartet. So funktioniert das zwar, ist aber nich so im Sinne des erfinders da man hier dummerweise ja auch ein "altes" Datum eingegebn kann was zu Problemen führen könnte.

    Code
    send ('obx#{ENTER}')
    send ('SY901M#{ENTER}')
    sleep(20000)

    Gruß

    Stekna

  • möglicherweise gfeht es ja so:

    [autoit]

    Opt("SendKeyDelay",50)
    Opt("SendKeyDownDelay",50)
    Send("obx SY901M `",1)
    Send("date",1)
    Send(" '+%Y%m%d'` Y",1)

    [/autoit]
  • Das bekomme ich im shell angezeit
    obx SY901M `date '+%Y%m%d'`Y
    wobei ich bei dem Schritt
    Send("date",1) vor date ein space gesetzt habe da ich sonst sowas sehe obx SY901M `^@ate '+%Y%m%d'`Y

    irgendwie setzt er den sol parameter nicht um :cursing:

    könnte ich hier mit _NowCalDate arbeiten?

    Einmal editiert, zuletzt von stekna (9. Mai 2008 um 14:00)

    • Offizieller Beitrag

    Hallo,

    kannst Du nicht einfach das Datum vom lokalen Rechner mitgeben!


    [autoit]

    Send("obx SY901M " & @YEAR & @MON & @MDAY & " Y#", 1)
    Send("{Enter}")

    [/autoit]