Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#8

AW: ShellExecute führt den Befehl nicht aus

  Alt 2. Jul 2014, 15:16
Ich weiß jetzt leider nicht, ob CMD den letzten ErrorLevel des letzten Befehls als eigenen ExitCode rausgibt.

Code:
COPY /V %von% %nach%
IF ERRORLEVEL 1   EXIT %ERRORLEVEL%


COPY /V %von% %nach%
IF %ERRORLEVEL% GTR 0   EXIT %ERRORLEVEL%
Das Exit setzt auf jeden Fall (sollte zumindestens) den ExitCode der CMD.exe
und wenn man mag, dann kann man via /V dem Copy sagen, es solle die Datei nach dem Schreiben nochmal prüfen.

Aber am Ende läuft es doch auf Folgendes hinaus
Delphi-Quellcode:
Status := ShellExecute(Handle, nil, '%ComSpec%', PChar('/C "COPY mitPfad/unbenannt.pdf D:\Entwicklungen\BPSWAWI\Buero4\Rechnungen\RE-14553-vom-02-07-2014.pdf"'), nil, SW_SHOW);

Status := ShellExecute(Handle, nil, '%ComSpec%', PChar('/C "COPY unbenannt.pdf D:\Entwicklungen\BPSWAWI\Buero4\Rechnungen\RE-14553-vom-02-07-2014.pdf"'), PChar(derPfad), SW_SHOW);

// k.A. ob jetzt %ComSpec% aufgelöst wird, oder halt einfach 'cmd.exe' nutzen, eventuell mit dem System32-Verzeichnis davor
und da frag ich mich, warum man dort nicht einfach RenameFile (SysUtils) oder CopyFile (Windws) verwenden sollte, oder besser noch eine der neuen Implementationen aus der IOUtils.
http://docwiki.embarcadero.com/CodeE...s_%28Delphi%29
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Jul 2014 um 15:20 Uhr)
  Mit Zitat antworten Zitat