commandozeile aufrufbar?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

commandozeile aufrufbar?

Beitrag von clag »

Moin Kenner und Könner,

ist es möglich aus einem Makro heraus die comandozeile von WinXP aufzurufen und eine Befehlskette zu übergeben?

Anstelle des möglichen Basic internen "mkdir"

Code: Alles auswählen

mkdir "mypath"\"mydirname" 
würde ich gern ein externes "touch" aufrufen,

Code: Alles auswählen

cmd touch.exe "mypath"\"mydirname" -t "myDate_and_Time" 
damit man den Zeitstempel setzen kann.

Oder per Basic alle cmd zeilen in eine Batch schreiben und die am Ende das Makro aufrufen?
Wie kann ich das am einfachsten realisieren?

erstmal Danke fürs lesen ....
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: commandozeile aufrufbar?

Beitrag von komma4 »

siehe F1 Shell-Funktion [Laufzeit] - oder die entsprechenden Posts dazu, hier im Forum.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: commandozeile aufrufbar?

Beitrag von Karolus »

Hallo
In diesem Beitrag findest du alles zum Thema Kommandozeile und Batch-datei.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: commandozeile aufrufbar?

Beitrag von clag »

Hi,
danke für Eure Tips und Links aber
damit komme ich noch nicht weiter bzw ich versteh es noch nicht,

also das Beispiel mit dem Windos Rechner funktioniert auf Anhieb
Shell("c:\windows\calc.exe",2)

mit der auf "cmd.exe" oder "command.com" abgewandelten Zeile habe ich schon keinen Erfolg mehr
Shell("c:\windows\system32\cmd.exe",2)
Shell("c:\windows\system32\command.com",2)
es passiert einfach nichts :(

mit einer Zeile aus dem von Karolus verlinkten Beitrag, wird zwar ein cmd Fenster geöffnet
aber keine Aktion ausgeführt
oService = createUNOService("com.sun.star.system.SystemShellExecute")
'oService.execute("C:\WINXP\system32\cmd.exe", 2, "md C:\Hallo")

das "md Hallo" wird nicht ausgeführt
außerdem landet man im OO Programm Verzeichnis
:?:

Ich hoffe es kann mir jemand etwas genauer erklären Bitte

edit:
Text korrigiert
Zuletzt geändert von clag am Fr, 06.04.2012 14:25, insgesamt 1-mal geändert.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: commandozeile aufrufbar?

Beitrag von Karolus »

Hallo
Für die Aufgabenstellung würde ich spätestens an der Stelle den Basiccode wegwerfen, und stattdessen in Python z.B. folgendes nehmen:

Code: Alles auswählen

import os

def make_dir_file_and_set_time():
    os.makedirs( r'/home/karo/dddd/test/' ) #erstellt rekursiv die Verzeichnisse 'dddd' und 'test'
    with open( r'/home/karo/dddd/test/test.txt', "w"):
        pass # erstellt eine leere Datei
    os.utime(r'/home/karo/dddd/test/test.txt',(111111, 222222)) # setzt mtime und atime der Datei
Funktioniert hier auf Anhieb, die Zeitstempel werden als '1.1.1970' + x Sekunden gesetzt.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: commandozeile aufrufbar?

Beitrag von clag »

Hi Karo

Danke
uh ah oh damit bin ich jetzt erstmal völlig überfordert :-?
könnte man das in das Basic Makro einbauen oder müsste man das als eingenes Routine aufrufen?

Ich versuch's jetzt mal damit, alle Befehle per Makro in eine Datei zu schreiben und die hinterher von Hand als batch aufrufen.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: commandozeile aufrufbar?

Beitrag von Karolus »

Hallo
uh ah oh damit bin ich jetzt erstmal völlig überfordert
Mann, was ist so schwierig daran statt der miesen Basic-IDE eine eigenständigen Editor zu benutzen - ( Notepad++ soll unter Windows ganz brauchbar sein) - in den richtigen Pfad zu speichern - ( $deine_User_config/Scripts/python/dein_erstes_Pythonscript.py ) und das dann per →Extras→Makros ..usw. auszuführen ?

könnte man das in das Basic Makro einbauen oder müsste man das als eingenes Routine aufrufen?
Ja, das kannst du auch aus Basic aus als Funktion aufrufen und den/die Pfad/e als Argument mit geben:
In diesem Beitrag wird Basic nur als "Brücke" benutzt um aus Calc heraus Funktionen zu benutzen die in Python geschrieben sind.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten