Windows 7 4.529 Themen, 43.521 Beiträge

Windows 7, Aufruf des calibredb Commands in einem VBS-Skript

GOROW / 2 Antworten / Flachansicht Nickles

Eine Liste aller ebooks in einer calibre-Bibliothek erstellt der Command calibredb, Funktion List.(ich verwende die neueste calibre-Version)
Ich möchte eine Liste erstellen und abhängig von div. Kriterien Ausbesserungen in der Bibliothek vornehmen - mit dem Kommand calibredb, Funktion set_metadata.

In einem Dos-Fenster (CMD.EXE) manuell eingegeben funktioniert calibredb list hervorragend und liefert auch die gewünschte Liste.

In einem VBS-Skript mithilfe des wscript.shell Objekts und dem RUN-Command gibt es immer folgende Fehlermeldungen:

Python function terminated unexpectedly
[Errno 12] Not enough space (Error Code: 1)
Traceback (most recent call last):
File "site.py", line 132, in main
File "site.py", line 109, in run_entry_point
File "site-packages\calibre\library\cli.py", line 1604, in main
File "site-packages\calibre\library\cli.py", line 247, in command_list
IOError: [Errno 12] Not enough space

und es gibt keinen Output. Auf der HD ist genug freier Platz (160 mb) vorhanden. Ev. gibt es ein Speicherproblem - ich weiss aber nicht was ich dagegen tun könnte.

Hätten Sie einen Tipp, wie ich das Problem lösen kann?

Besten Dank schon einmal im Voraus.

bei Antwort benachrichtigen
GOROW HADU „Hi, es scheint, dass das Ergebnis für die wscript Shell zu groß ...“
Optionen

Servus HADU,

Ich leite die Ausgabe um, weil ich die maschinell untersuchen will. Hier der genaue Kommand (mit einer Länge von 221 Zeichen):

"d:\USERS\TE\CALIBRE\Calibre Portable\Calibre\calibredb.exe" list --library-path "d:\USERS\TE\CALIBRE\Calibre Portable\BIBLIOTHEK_T" --separator !! --fields authors,title,author_sort --line-width 1056 >d:\TEST\INHALT1.TXT

Zur Zeit lasse ich es unter EXCEL-VBA Iist VBS aähnlich)  laufen. Da kann ich wenigstens Haltepunkt setzen und Variableninhalte ansehen. Den generierten Kommand kopiere ich manuell in das CMD-Fenster  und führe ihn durch. Den Ausgabe-File (in D:\TEST\INHALT1.TXT) lese ich dann ein.

Eigentlich will ich das so lösen (der Kommand steht inder variablen KOM):

Set WHO = CreateObject("WScript.Shell")

outx = WHO.RUN(KOM,1,1) 

Danke für die Hilfe und lG, GOROW

bei Antwort benachrichtigen