Seite 1 von 1

commandozeile aufrufbar?

Verfasst: Fr, 06.04.2012 09:10
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 ....

Re: commandozeile aufrufbar?

Verfasst: Fr, 06.04.2012 10:53
von komma4
siehe F1 Shell-Funktion [Laufzeit] - oder die entsprechenden Posts dazu, hier im Forum.

Re: commandozeile aufrufbar?

Verfasst: Fr, 06.04.2012 11:11
von Karolus
Hallo
In diesem Beitrag findest du alles zum Thema Kommandozeile und Batch-datei.

Karo

Re: commandozeile aufrufbar?

Verfasst: Fr, 06.04.2012 13:16
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

Re: commandozeile aufrufbar?

Verfasst: Fr, 06.04.2012 14:04
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

Re: commandozeile aufrufbar?

Verfasst: Fr, 06.04.2012 14:40
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.

Re: commandozeile aufrufbar?

Verfasst: Fr, 06.04.2012 15:04
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