Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Parameterübergabe an cmd.exe (https://www.delphipraxis.net/92184-parameteruebergabe-cmd-exe.html)

Nikolas 15. Mai 2007 21:08


Parameterübergabe an cmd.exe
 
Hallo

Ich bin gerade dabei ein Programm zu schreiben, dass mir tex-Dateien in pdfs kompiliert. Dabei benutze ich die texify.exe, die ich über per cmd aufrufe.
Der Befehl sieht dann so aus: '/k texify --pdf C:\bla\Dokument.tex', der Aufruf also:
Delphi-Quellcode:
Shellexecute(0,'open','cmd',pchar(Befehl),pchar(Ziel),1);
Das Ziel ist der Ordner, in den später das pdf-Dokument abgelegt wird. Wenn nun das pdf-Dokument direkt auf C liegt (C:\Dokument.tex) funktioniert es so, wie ich das gerne hätte. Liegt die Datei aber z.B. auf dem Desktop, öffnet sich zwar cmd, aber ich bekomme die Nachricht das die Datei nicht gefunden wurde.
Liegt die Datei sonstwo auf einer anderen Festplatte funktioniert die Funktion auch.

Mein Verdacht sieht jetzt so aus, dass cmd zu Beginn auf C:\Dokumente und Einstellungen\Besitzer eingestellt ist und dann die Pfade aneinender hängt, wenns nicht der gleiche Laufwerksbuchstabe ist und sich daran verschluckt. Leider ist das mein erster cmd Versuch, so dass ich jetzt festhänge.

Könnte mir da vielleicht jemand weiterhelfen?

Nikolas

mkinzler 15. Mai 2007 21:11

Re: Parameterübergabe an cmd.exe
 
Quote den Pfad.

matashen 15. Mai 2007 21:13

Re: Parameterübergabe an cmd.exe
 
Du Führst cmd im <Ziel> aus, also könnte es doch sein das du in <Ziel> keine Schreibrechte besitzt. Dein Desktop ist aber im Userpfad und dort haste ja schreibrechte.

Vieleicht liegts daran

Gruß Matthias

Nikolas 15. Mai 2007 21:20

Re: Parameterübergabe an cmd.exe
 
Und der Sieger des heutigen Wettbewerbs ist klar nach Punkten: mkinzler !!!

In der Rekordzeit von 3 Minuten und einer leicht kryptischen Antwort. Nicht schlecht. Danke schön.

Könntest du mir vielleicht auch noch sagen, warum? :gruebel:

Danke auch dir Matthias :thumb:

mkinzler 15. Mai 2007 21:24

Re: Parameterübergabe an cmd.exe
 
Ganz einfach: Durch Leerzeichen im Pfad wird der Pfad als mehrere Parameter interpretiert

Nikolas 15. Mai 2007 21:32

Re: Parameterübergabe an cmd.exe
 
Aso. Das heisst, das Problem war nicht der Laufwerksbuchstabe sondern nur, der Ordner 'Einstellungen und Dokumente'. Na toll. Daran habe ich jetzt 2h gesessen... :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz