Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Batch Datei in PostBuild Ereignis nicht aufgerufen (https://www.delphipraxis.net/212009-batch-datei-postbuild-ereignis-nicht-aufgerufen.html)

TurboMagic 1. Dez 2022 19:01

Batch Datei in PostBuild Ereignis nicht aufgerufen
 
Hallo,

ich versuche in 11.2 eine Batch Datei die mehrere Kopieren befehle enthält im
Post-Build Ereignis aufzurufen. Das klappt aber nicht.

Das ist der Aufruf:
$(PROJECTDIR)\Reports\CopyReports.bat

Auch mit call davor klappt das nicht.
Rufe ich die Batch Datei vom Explorer aus auf, tut diese was sie soll.
Anfänglich wurde im Meldungs-Panel ein Fehlercode 2 angezeigt, jetzt aber nicht mehr.
Der dort angezeigte Pfad ist aber korrekt.

Woran kann es liegen?

Grüße
TurboMagic

Achim Kalwa 1. Dez 2022 19:48

AW: Batch Datei in PostBuild Ereignis nicht aufgerufen
 
Moin,

Batch-Dateien sind nicht direkt ausführbar, sondern benötigen den Kommandoprozessor cmd.exe. versuche mal, cmd.exe /c voranzustellen:
cmd.exe /c "Pfad\zu\Deiner\Datei.bat"

himitsu 2. Dez 2022 08:15

AW: Batch Datei in PostBuild Ereignis nicht aufgerufen
 
ähhhhh nein, sie sind aufrufbar.
Wobei es egal sein sollte, ob BAT (der alte DOSsige Name) oder CMD (der etwas "Modernere")

nutze auch sowas, seit D10.2 (%root% ist eine eigene Umgebungsvariable in der IDE)
Code:
"$(root)\Build\dproj__compile_postbuild.cmd" "$(Config)" "$(Platform)" "$(OutputExt)" "$(InputDir)$(InputName)" "$(OutputDir)$(OutputName)"
und besonders besch***eiden ist Delphi darin, dass abweichende LibSuffix nicht im in den Outputnamen enthalten sind, vorallem nicht bei
Delphi-Quellcode:
{$LIBSUFFIX AUTO}
.



CALL geht nicht direkt, denn das ist ein Befehl des COMMAND,
aber Delphi/MSBuild scheint die Befehle/Zeilen einzeln (CreateProcess/ShellExecuteEx) auszuühren, mit einigen blöden eigenartigen Verhalten,
wie z.B. ein IF ERRORLEVEL nach einem Befehl geht nicht, weil jede Zeile bei <>0 sofort zum Abbruch führt.


Ja, hatte anfangs auch Probleme, dass ich nichts sah.
Hatte mir dann mit
Delphi-Quellcode:
ECHO > xxx
quasi ein Logging eingefügt.

[edit]
Warte .... in 11.2 bin ich mir grade nicht sicher, ob es noch geht.
Ich dachte ich hatte eine Logausgabe "Text" in den Mendungen.

Nee geht.
Ein ECHO im Script landet im Ausgabe-Tab der Meldungen.

Kann es sein, dass seit 10.4 sich etwas geändert hat?
Ich mache zuerst im Script ein
Code:
@chcp 1252 > nul
@echo off
Im IDE-Log gab es keine Ausgabe der Befehle, aber wenn das Script manuell ausgeführt wurde, dann wollte ich ebenfalls nur die ECHO sehen.
und dann gefolgt von einem
Delphi-Quellcode:
echo ##### %~nx0 "%~1" "%~2" "%~3" "...\%~nx4" "%~5" %~6
(ja,
Delphi-Quellcode:
echo %0 %*
sollte auch gehn), damit ich sehe, was genau aufgerufen wird.

Nun sehe ich aber im aktuellsten 11.2 gefühlt ein paar neue Zeilen,
Code:
BuildProjectResourceFile-Ziel:
_PasCoreCompile-Ziel:
PostBuildEvent-Ziel:
jeweils gefolgt von den entsprechenden cgrc- und dcc-Aufrufen, sowie dem Inhalt meiner Batch, also mein Script mit aufgelösten Parametern, gefolgt von meinen ECHOs aus'm Script.

PaPaNi 2. Dez 2022 09:13

AW: Batch Datei in PostBuild Ereignis nicht aufgerufen
 
Moin,

was passiert, wenn man z.B. eine Test.cmd-Datei mit dem Inhalt
echo HALLO AUS TEST.CMD

irgendwo abspeichert, z.B. unter
D:\test.cmd
(zuerst würde ich einen Pfad ausprobieren, der keine Leerzeichen hat)

und für Post-Build-Event erstmal den genauen Pfad eingibt?
call D:\Test.cmd

In diesem Fall würde ich nach dem Build den Text "HALLO AUS TEST.CMD" im Reiter Output erwarten.

Wenn das funktioniert, dann würde ich die Pfade richtig anschauen. Wenn nicht, dann könnte es an der neue Version von Delphi liegen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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