Remplacer une ligne interprétée d'un fichier binaire batch/perl
Résolu
sylv_brl
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
sylv_brl Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
sylv_brl Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Remplacer une ligne interprétée d'un fichier binaire batch/perl
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier batch - Guide
4 réponses
En fait je penses que c'est bon, j'ai juste perdu des lignes vides de présentation ^^ :
Plus qu'à tester dans le script...
@echo off setlocal disableDelayedExpansion set "_strFind=CPPFLAGS = $(CFLAGS) -I/usr/local/include -L/usr/local/lib -Iinclude/" cp -f Makefile MakefileTemp (for /f "usebackq delims=" %a in (MakefileTemp) do ( if "%a" equ "%_strFind%" (echo CPPFLAGS = $(CFLAGS^) -I%DEPS%/amqp/rabbitmq-c-rabbitmq-c-v0.3.0/include/ -I include/ -L%DEPS%/amqp/rabbitmq-c-rabbitmq-c-v0.3.0/lib/ -Llib/) else (echo %a))) > MakefileTemp
Plus qu'à tester dans le script...
Reste encore un problème d'interprétation de '%' de '%a' que j'exécute ce code dans mon script, donc j'utilise bien '%%a' comme donnée initialement dans la solution. MakeFile n'a plus de lignes vides mais n'a pas réécrit la troisième ligne...
Ok donc finalement je reste avec ce code implémenté dans le .bat de construction des dépendances du projet global (Realxtend). Ici %DEPS% est la variable contenant le chemin de construction des ces dépendances (dont Rabbitmq-c et amqpcpp) :
...
Donc j'évite finalement d'utiliser des variables intermédiaires en plus d'utiliser '%%a' comme l'a spécifié dubcek, et là je n'ai plus de problème en traitant tout d'un coup, même si c'est un peu laid pour reconfigurer les chemins si besoin ensuite. Maintenant je dois comprendre des problèmes d'utilisation de .lib redirigeant vers une .dll avec préfixe '_imp_' mais c'est une autre histoire...
...
cd "%DEPS%\amqp\amqpcpp"...
cecho {0D}Compiling AMQPCpp.{# #}{\n}
sed -i "35i #define bzero(b,len) (memset((b), '\0', (len)), (void) 0)" include\AMQPcpp.h
@echo off
setlocal disableDelayedExpansion
(for /f "usebackq delims=" %%a in (Makefile) do ( if "%%a" equ "CPPFLAGS = $(CFLAGS) -I/usr/local/include -L/usr/local/lib -Iinclude/" (echo CPPFLAGS = $(CFLAGS^) -I%DEPS:\=/%/amqp/rabbitmq-c-rabbitmq-c-v0.3.0/librabbitmq/ -I%DEPS:\=/%/amqp/amqpcpp/include -L%DEPS:\=/%/amqp/rabbitmq-c-rabbitmq-c-v0.3.0/build/librabbitmq/RelWithDebInfo/
) else (echo %%a))) >MakefileTemp
rm Makefile
mv MakefileTemp Makefile
make -j%NUMBER_OF_PROCESSORS%
Donc j'évite finalement d'utiliser des variables intermédiaires en plus d'utiliser '%%a' comme l'a spécifié dubcek, et là je n'ai plus de problème en traitant tout d'un coup, même si c'est un peu laid pour reconfigurer les chemins si besoin ensuite. Maintenant je dois comprendre des problèmes d'utilisation de .lib redirigeant vers une .dll avec préfixe '_imp_' mais c'est une autre histoire...