Seite 1 von 1

Erstellte .cmd Datei wird nicht ausgeführt

Verfasst: Sa 26. Sep 2026, 11:12
von Nübby
Ich lese Dateinamen, Pfad und Erweiterung von Dateien in getrennte Spalten einer Tabelle. Aus den Daten dieser Tabelle wird zum Aufrufen der Dateien (Bilder,Videos..) eine cmd Datei erstellt. (incl. Ländercode für die umlaute). Nun lassen sich manche Dateien aufrufen und andere werden nicht ausgeführt. In der (portable)Version 26.2.12 mit der gleichen Tabelle geht alles. In der aktuellen Version 26.8 mal ja, mal nein. Meine Fehleranalyse zeigte mir das der Unterschied nur im Mime Typ der erstellten Datei besteht. Mal us-ascii, mal utf-8. Unter meinem aktuellen Win11 wird dann die mit utf-8 erstellte Datei nicht ausgeführt. Kann ich den Mime Typ irgendwie beim erstellen ändern/vorgeben?

Nachtrag: Datei erstellt wird mit Basic-Macro.

Re: Erstellte .cmd Datei wird nicht ausgeführt

Verfasst: Sa 26. Sep 2026, 12:29
von Pit Zyclade
Hättest deinen Beitrag besser unter LibreOffice|Programmierung untergebracht als hier in calc, weil das doch spezifisch für Programmierung spricht.

Re: Erstellte .cmd Datei wird nicht ausgeführt

Verfasst: Sa 26. Sep 2026, 16:37
von karolus
Nübby hat geschrieben: ↑
Sa 26. Sep 2026, 11:12

Nachtrag: Datei erstellt wird mit Basic-Macro.
Also das übliche Gefrickel mit BASIC!?

Magst du uns diesen BASIC-code zeigen, dann könnten wir vielleicht mehr dazu sagen, oder dich mit weiteren konkreten Rückfragen belästigen!

Re: Erstellte .cmd Datei wird nicht ausgeführt

Verfasst: Sa 26. Sep 2026, 19:59
von Nübby
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.

Re: Erstellte .cmd Datei wird nicht ausgeführt

Verfasst: Sa 26. Sep 2026, 20:00
von Nübby
Kann ich diesen Beitrag noch nach Programierung verschieben?