Libre Office

Erstellte .cmd Datei wird nicht immer ausgeführt

Alles zur Programmierung im LibreOffice.
Antworten
Nübby
Beiträge: 6
Registriert: Di 22. Sep 2026, 10:19

Erstellte .cmd Datei wird nicht immer ausgeführt

Beitrag von Nübby » So 27. Sep 2026, 19:13

Hatte erste Beiträge gemacht.
viewtopic.php?f=6&t=42230

Re: Erstellte .cmd Datei wird nicht ausgeführt

Beitrag von Nübby » Sa 26. Sep 2026, 19:59
Ja, das übliche gefrickel mit Basic. Allerdings in recht komplexer Form. Die Tabelle enthält über 10.000 Einträge die über Macros verwaltet werden. Die Datei ist für meine Fotos, Tieraufnahmen gemacht incl. Taxonomie und Metadaten einlesen (über ExifTool) und im Laufe der Jahre gewachsen. Der Grundcode zum erstellen und aufrufen der cmd ist im Original in
Sub aufruf_x(ereignis) ab Zeile 820 und sieht gekürzt so aus:

'...
tmpordner=Environ("TEMP"): if tmpordner="" then tmpordner=Environ("TMP")
tmpordner=tmpordner+"\"
mycell = mysheet1.getCellByPosition(7,zeile): name1=mycell.string `Pfad
mycell = mysheet1.getCellByPosition(2,zeile): name2=mycell.string 'Name
mycell = mysheet1.getCellByPosition(3,zeile): name3=mycell.string 'erw
dname=tmpordner+"aufruf.cmd" :
inh="@Echo off"+chr$(13)+"chcp 1252 >nul"+chr$(13)+chr$(34)+name1+name2+name3+chr$(34)
num3=freefile
open dname for output as #num3
print #num3,inh
close #num3
Shell (dname,4)
'....

mysheet1 ist natürlich vorher definiert. Bevor weitere Nachfragen nach Code kommen - Die komplette Datei ist sehr komplex und beinhaltet U.a. Betriebsystem (Windows/Linux) und Programm (OpenOff/LibreOff) abfragen. Unter Linux habe ich große Probleme mit einigen Befehlen, was aber jetzt gerade nicht das Problem sein soll. (Kann später mal in angriff genommen werden.)
Da unter Libre der Befehl 'dispatcher.executeDispatch(document, ".uno:AutoFill", "", 0, args2()) ' nicht ausgeführt wird wenn die Spalte Hidden ist, musste ich die Programmversionsabfrage mit einbauen um diese Spalte bei Bedarf vorher Einzublenden.
Die komplette Datei ist im Anhang. Alle eingetragenen Dateien sind natürlich nur auf meinem Recher vorhanden. Das erstellen der cmd sollte aber auch ohne diese gehen.
Dateianhänge
Natur-Tiere_alle.ods
(2.28 MiB) 1-mal heruntergeladen

Nübby
Beiträge: 6
Registriert: Di 22. Sep 2026, 10:19

Re: Erstellte .cmd Datei wird nicht immer ausgeführt

Beitrag von Nübby » So 27. Sep 2026, 20:01

Hallo Karolus
Das mit dem Link statt Umständlichem Dateiaufruf hatte ich früher zuerst versucht. Hat dann nicht mehr funktioniert wenn Datei von wo anders gestartet wurde. (andererem Ordner oder Laufwerk). Auch habe ich im Programm die Möglichkeit eingebaut die gesamte Dateistrucktur (incl. aller Bilder...) auf externe Platte zu kopieren und dort (vom jeweiligen Laufwerk) ebenfalls überall alles Aufrufen zu können. Menüpunkt 'Aufruf vom aktuellen Lw. oder original Pfad'. Ich weiß nicht ob das auch mit (relativen-)Links gehen würde.

Hallo Mikele
Es sind keine Sonderzeichen in den Dateinamen enthalten. Um den Aufruf mit umlauten möglich zu machen wird Codepage 1252 (chcp 1252) vor dem Dateiaufruf ausgeführt. Ich weiß nicht warum die cmd selbst mal so und mal so erstellt wird. Es ist immer die gleiche Routine, Daten werden aus Feldern gelesen, zusammengesetzt und in Datei geschrieben. Es liegt nicht am Ordner der Quell Datei und nicht an der Quell Datei selber. Wenn ich sie kopiere geht es manchmal. Alle Daten sind übrigens unter Openoffice Eingelesen worden und sollten daher auch alle das gleiche Format haben.
Wie bereits geschrieben- unter Libre Version 26.2 gab es dieses Problem nicht. (Ebensowenig unter OpOf). Aufgrund von manchen Vorteilen in Libre würde ich es bevorzugen wenn es darunter weiterhin fehlerlos ginge.

Nochmal meine Frage: Warum wird die cmd Datei mal mit diesem und mal mit dem anderen Mime Typ erstellt. Kann ich das noch irgendwie beeinflussen.

Danke auf jeden Fall schon mal dafür, das ihr euch damit beschäftigt habt.

Open Office
Antworten