![]() |
|
Précédent | Sommaire | Suivant 5.1 Commandes du compilateurCes commandes sont similaires à celles du préprocesseur C en terme de fonctionnalités et d'utilisation. Elles autorisent l'inclusion de fichiers, la compilation conditionnelle, la compression de l'en-tête de lexécutable et permet l'exécution pendant le processus de création. Note : aucune de ces commandes n'autorise l'utilisation de variables. 5.1.1 !include[/NONFATAL] fichier Cette commande va inclure 'fichier' tout comme s'il faisait partie du script original. Notez que si le script est inclus depuis un autre répertoire, le répertoire de travail sera toujours celui d'où le script est compilé (et non celui du fichier inclus). Si le compilateur ne peut pas trouver le fichier, il chercher dans tous les répertoires d'inclusion. Voir !addincludedir pour plus d'informations. Si le paramètre /nonfatal est utilisé et qu'aucun fichier n'est trouvé, une alerte sera affichée au lieu d'une erreur. !include WinMessages.nsh !include Library.nsh !include C:\MyConfig.nsi !include ..\MyConfig.nsh !include /NONFATAL file_that_may_exist_or_not.nsh 5.1.2 !addincludedirrépertoire Ajoute un autre répertoire d'inclusion dans la liste des répertoires d'inclusion. Cette liste est utilisée lorsque !include est utilisé. La valeur initiale de cette liste est ${NSISDIR}\Include. !addincludedir ..\include !include something.nsh 5.1.3 !addplugindirrepertoire Indique au compilateur NSIS de scanner dans le répertoire spécifié des dlls à brancher. !addplugindir myplugin MyPlugin::SomeFunction 5.1.4 !appendfiletexte fichier Traite text en file. !tempfile FILE
!appendfile "${FILE}" "XPStyle on$\n"
!appendfile "${FILE}" "Name 'test'$\n"
!include "${FILE}"
!delfile "${FILE}"
!undef FILE
5.1.5 !cdnv_rep Cette commande va modifier le répertoire de la compilation. nv_rep peut être un chemin relatif ou absolu. !cd ..\more-scripts\new 5.1.6 !delfilefile Cette commande supprime un fichier. !tempfile FILE
!delfile "${FILE}"
!undef FILE
5.1.7 !echomessage Cette commande affichera un message à l'utilisateur durant la compilation. !echo "hello world" 5.1.8 !error[message] Cette commande générera une erreur pour le compilateur, et arrêtera le traitement du script. Vous pouvez aussi ajouter un message à cette erreur. !ifdef VERSION & NOVERSION !error "VERSION et NOVERSION sont tout deux définis" !endif 5.1.9 !executecommande Cette commande exécutera 'commande' avec un appel de CreateProcess(). A l'inverse de !system, cela n'utilise pas le processeur de ligne de commande, donc les redirection entrée/sortie et commandes comme 'cd', 'dir' et 'type' ne peuvent pas être utilisées. !execute ignore aussi le retour de valeur de la commande exécutée. Actuellement, le seul avantage connu de !execute par rapport à !system est qu'il ne cause pas de problème quand le répertoire de travail est spécifié par UNC. Sur le plateformes POSIX, !execute utilisera system() tout comme !system. !execute '"%WINDIR%\notepad.exe" "${NSISDIR}\license.txt"'
5.1.10 !packhdrfichier_temp commande Cette option permet au compilateur d'utiliser un compresseur d'EXE externe (tel que Petite ou UPX) pour compresser l'en-tête exécutable. Spécifiez un nom de fichier temporaire (comme "temp.dat") ainsi qu'une ligne de commande (comme "C:\program files\upx\upx -9 temp.dat") pour compresser l'en-tête. !packhdr "$%TEMP%\exehead.tmp" '"C:\Program Files\UPX\upx.exe" "$%TEMP%\exehead.tmp"' 5.1.11 !systemcommande [comparaison valeur_comparaison] Cette commande exécutera 'commande' en utilisant un appel de system(), et si la valeur de retour comparée (en utilisant 'comparaison') à 'valeur_comparaison' est fausse, l'exécution s'arrêtera. 'Comparaison' peut être '<' ou '>' ou '<>' ou '=' ou 'ignore' (ignorer). !system '"%WINDIR%\notepad.exe" "${NSISDIR}\license.txt"'
!system 'echo !define something > newinclude.nsh'
!include newinclude.nsh
!ifdef something
!echo "something is defined"
!endif
5.1.12 !tempfilesymbol Cette commande crée un fichier temporaire. Elle mets son chemin dans un define, nommé symbol. !tempfile PACKHDRTEMP
!packhdr "${PACKHDRTEMP}" '"C:\Program Files\UPX\upx.exe" "${PACKHDRTEMP}"'
!tempfile FILE
!define /date DATE "%H:%M:%S %d %b, %Y"
!system 'echo built on ${DATE} > "${FILE}"'
File /oname=build.txt "${FILE}"
!delfile "${FILE}"
!undef FILE
!undef DATE
5.1.13 !warning[message] Cette commande alertera le compilateur. Vous pouvez aussi ajouter un message à cette avertissement. !ifdef USE_DANGEROUS_STUFF !warning "ceci est dangereux" !endif 5.1.14 !verboseniveau | push | pop Cette commande va définir le niveau verbeux. 4=tout, 3=pas de script, 2=pas d'infos, 1=pas d'avertissement, 0=rien Passer push amène !verbose à placer le niveau verbeux courant dans une pile spéciale. Passer pop amène !verbose à récupérer le niveau verbeux courant depuis la même pile et à l'utiliser. !verbose push !verbose 1 !include WinMessages.nsh !verbose pop Précédent | Sommaire | Suivant |
||
|