|
Scripts
WinHex
Please see the program help or the manual for the latest update of this documentation.
La plupart des fonctions de WinHex peuvent être
automatisées, par exemple pour accélérer des tâches répétitives ou exécuter
certaines tâches sur des ordinateurs distants et sans supervision. La possibilité
d'exécuter des scripts autres que les exemples fournis est limitée aux seuls possesseurs
de la license professionnelle ou spécialiste. Les scripts peuvent être lancés depuis le
démarrage rapide centralisé ou la ligne de commande. Vous pouvez interrompre un script
en cours d'exécution en appuyant sur la touche Echap. Par leurs possibilités
supérieures, les scripts remplacent les routines, seules méthodes d'automatisation dans
les versions antérieures de WinHex.
Les scripts WinHex sont des fichiers texte avec
l'extension ".whs". Ils peuvent être édités par n'importe quel éditeur de
texte et consistent en une simple suite de commandes. Il est recommandé d'entrer une
commande par ligne, simplement par clarté visuelle. Selon la commande, il peut être
nécessaire de lui ajouter des paramètres. La plupart des commandes agissent sur le
fichier ou le disque affiché dans la fenêtre active courante.
Voir également: WinHex API
Les commandes de scripts sont insensibles à la casse. Les
commentaires peuvent apparaître n'importe où dans le script et doivent être précédés
de deux barres obliques. Les paramètres ont une longueur maximum de 255 caractères.
Where in doubt because hex values, text strings (or even integer numbers) are accepted as
parameters, you may use inverted commas (quotation marks) to enforce the interpretation of
a parameter as text. Inverted commas are required if a text string or variable name
contains one or more space characters, so that all characters between the inverted commas
are recognized as constituting one parameter.
Voici une description des commandes de script actuellement
reconnues, avec des exemples de paramètres.
Create "D:\My File.txt" 1000
Créé le fichier avec une taille initiale de 1000 octets. Si le fichier existe déjà, il
est écrasé.
Open "D:\My File.txt"
Open "D:\*.txt"
Ouvre le ou les fichiers specifies.
Open C:
Open D:
Ouvre le lecteur logique spécifié
Open 80h
Open 81h
Open 9Eh
Ouvre le média physique spécifié. Floppy disk numbering starts with 00h, fixed and
removable drive numbering with 80h, optical media numbering with 9Eh.
Optionally, you may pass a second parameter with the Open command that defines the edit
mode in which to open the file or media ("in-place" or "read-only").
CreateBackup
Créé une sauvegarde du fichier actif dans son état courant.
CreateBackupEx 0 100000 650 true "F:\My backup.whx"
Creates a backup of the active disk, from sector 0 through sector 1,000,000. The backup
file will be split automatically at a size of 650 MB. Compression is enabled
("true"). The output file is specified as the last parameter.
If the backup file should not be split, specify 0 as the third parameter. To disable
compression, specify "false". To have the Backup Manager automatically assign a
filename and place the file in the folder for backup files, specify "" as the
last parameter.
Goto 0x128
Goto MyVariable
Déplace la position hexadécimale du curseur au décalage 0x128. Une variable existante
(jusqu'à 8 octets) peut aussi être interprétée comme une valeur numérique.
Move -100
Déplace en arrière la position courante du curseur de 100 octets (en decimal).
Write "Test"
Write 0x0D0A
Write MyVariable
Ecrit les quatre caractères ascii "Test" ou les valeurs hexa "0D0A"
depuis la position courante (en mode écrasement) et déplace la position courante vers
l'avant en conséquence (dans cet exemple: de 4 octets). Permet aussi d'écrire le contenu
d'une variable précisée comme paramètre.
Insert "Test"
Functions just as the "Write" command, but in insert mode. Must only be used
with files.
Read MyVariable 10
Lit les 10 octets depuis la position courante dans une variable nommée
"MyVariable". Si la variable n'existe pas, elle est créée. Up to 16 different
variables allowed. Un autre moyen de créeer une variable est la commande
"Assign".
ReadLn MyVariable
Reads from the current position into a variable named "MyVariable" until the
next line break is encountered. If the variable already exists, its size will be adjusted
accordingly.
Close
Ferme la fenêtre active sans enregistrer.
CloseAll
Ferme toutes les fenêtres sans enregistrer.
Save
Enregistre les modifications du fichier ou du disque dans la fenêtre active.
SaveAs "C:\New Name.txt"
Enregistre le fichier de la fenêtre active dans le chemin d'accès spécifié. Specify
"?" as the parameter to let the user specify the destination.
SaveAll
Enregistre les modifications de toutes les fenêtres.
Exit
Termine l'exécution d'un script et ferme WinHex.
ExitIfNoFilesOpen
Arrête l'exécution d'un script si aucun fichier n'est déjà ouvert dans WinHex.
Block 100 200
Block "My Variable 1" "My Variable 2"
Définit un bloc dans la fenêtre active pour exécuter de l'offset 100 à l'offset 200
(en décimal). Alternatively, existing variables (each up to 8 bytes large) can be
interpreted as numeric values.
Block1 0x100
Définit le bloc debutant à l'offset hexadecimal 0x100. Une variable est aussi autorisée
comme paramètre.
Block2 0x200
Définit la fin du bloc à l'offset hexadecimal 0x200. Une variable est aussi autorisée
comme paramètre.
Copy
Copie le bloc courant dans le presse-papiers. Si aucun bloc n'est spécifié, la commande
agit depuis la commande "Copier" dans le menu d'édition.
Cut
Coupe le bloc courant pré-défini du fichier et le met dans le presse-papiers.
Remove
Enlève le bloc pré-défini depuis le fichier
CopyIntoNewFile "D:\New File.dat"
CopyIntoNewFile "D:\File +MyVariable+.dat"
Copie le bloc courant pré-défini dans le nouveau fichier spécifié, sans utiliser le
presse-papiers. Si aucun bloc n'est défini, la commande agit comme depuis la commande
"Copy" du menu d'édition. Peut aussi copier des secteurs disques. Le nouveau
fichier ne sera pas automatiquement ouvert dans une nouvelle fenêtre. Autorise un nombre
illimité de "+" concaténés dans le paramètre. Un nom de variable sera
interprété come un entier s'il n'est pas supérieur à 2^24 (env. 16Mo). Ceci est utile
pour les boucles et la récupération de fichiers.
Paste
Colle le contenu courant du presse-papiers à la position courante d'un fichier, sans en
changer sa position courante.
WriteClipboard
Ecrit le contenu courant du presse-papiers à la position courante d'un fichier ou de
secteurs disques, sans changer sa position courante, en écrasant les données de la
position courante.
Convert Param1 Param2
Converti les données du fichier actif d'un format à un autre. Les paramètres valides
sont ANSI, IBM, EBCDIC, Binaire, HexASCII, IntelHex, et Motorola, en combinaisons depuis
la commande "Convert" du menu Edition.
Encrypt "My Password"
Encrypte le fichier ou le disque actif, ou le bloc sélectionné, avec la clé spécifiée
(jusqu'à une longueur de 16 caractères) en utilisant l'algorithme PCl (128 bits).
Decrypt "My Password"
Décode le fichier ou disque actif.
Find "John" [MatchCase MatchWord Down Up BlockOnly SaveAllPos
Unicode Wildcards]
Find 0x1234 [Down Up BlockOnly SaveAllPos Wildcards]
Recherche dans la fenêtre active le nom John ou les valeurs hexadécimales 0x1234, et
s'arrête à la première occurrence. D'autres paramètres sont optionnels. By default,
WinHex searches the entire file/disk. Les paramètres optionnels fonctionnent comme dans
les options "recherche" de WinHex.
ReplaceAll "Jon" "Don" [MatchCase MatchWord Down Up
BlockOnly Unicode Wildcards]
ReplaceAll 0x0A 0x0D0A [Down Up BlockOnly Wildcards]
Remplace toutes occurrences of either a string or hexadecimal values in the active file
with something else. Can only be applied to a disk if in in-place mode.
IfFound
Une valeur booléenne dépend ou non de la dernière commande "Find" ou
"ReplaceAll", réussie. Place les commandes devant être exécutées si quelque
chose a été trouvé après la commande "IfFound"
IfEqual MyVariable "constant string"
IfEqual 0x12345678 MyVariable
IfEqual MyVariable MyOtherVariable
Compare deux variables, chaînes ASCII, ou valeurs hexadécimales à un niveau binaire.
Comparer deux occurrences de taille différentes génère toujours la valeur
"false". Si identique, les commandes suivantes sont exécutées.
IfGreater 0x12345678 MyVariable
IfGreater MyVariable MyOtherVariable
Compares two variables and interprets them as integer values (64-bit signed). Such an
integer comparison is not appropriate for comparing strings of different lengths
alphabetically. If the first one is greater than the second one, the following commands
will be executed.
Else
Peut se produire après "IfFound" ou "IfEqual". Les commandes après
la commande "Else" seront exécutées si rien n'a été trouvé ou si les objets
comparées sont inégales.
EndIf
Arrête l'exécution conditionnelle de commandes (après IfFound ou IfEqual).
ExitLoop
Sort d'une boucle. Une boucle est definie entre accollades: {}. La fermeture peut être
suivi d'un entier entre crochets [], ce qui détermine le nombre de boucles à exécuter.
L'expression entre crochets peut aussi être une variable ou le mot "unlimited"
(dans ce cas la boucle ne peut être interrompue que par la commande
"ExitLoop"). Les boucles ne doivent être imbriquées.
Exemple de boucle:
{ Write "Loop" }[10] écrira le mot "Loop" 10 fois.
Label ContinueHere
Creates a label named "ContinueHere"
JumpTo ContinueHere
Continues script execution with the command following that label.
NextObj
Bascule cyclique à la fenêtre ouverte suivante et l'active. Ex: Si 3 fenêtres sont
ouvertes, et la fenêtre 3 active, "NextObj" rendra la fenêtre 1 active.
ForAllObjDo
Les commandes de script du bloc suivant (jusqu'à la commande "EndDo" soit
rencontrée) sera appliquée à tous les fichiers et disques ouverts.
CopyFile C:\A.dat D:\B.dat
Copie le contenu de c:\A.dat dans le fichier D:\B.dat.
MoveFile C:\A.dat D:\B.dat
Déplace le fichier C:\A.dat vers D:\B.dat.
DeleteFile C:\A.dat
Surprisingly, deletes C:\A.dat.
InitFreeSpace
InitSlackSpace
Clears free space or slack on the current logical drive, respectively, using the currently
set initialization settings. InitSlackSpace switches the drive temporarily to in-place
mode, thus saving all pending changes.
Assign MyVariable 12345
Assign MyVariable 0x0D0A
Assign MyVariable "J'aime WinHex"
Assign MyVariable MyOtherVariable
Assigne l'entier spécifié ou le contenu d'une variable (ou des données binaire ou de
texte ASCII) dans une variable nommée "MyVariable". Si cette variable n'existe
pas, elle est créée. Jusqu'à 16 différentes variables sont autorisées. Une variable
peut aussi être créée par la commande "Read".
Inc MyVariable
Gère la variable comme un entier (si sa taille ne dépasse pas 8 octets) et l'incrémente
de 1. Utile pour les boucles.
Dec MyVariable
Gère la variable comme un entier (si sa taille ne dépasse pas 8 octets) et la
décrémente de 1.
MessageBox "Caution"
Affiche un message "Caution" et offer à l'utilisateur le choix OK ou annuler.
Pressing the Cancel button will abort script execution.
ExecuteScript "ScriptName"
Exécute un script depuis un autre script, depuis la position courante, p. e. dependant de
l'état conditionnel. Calls to other scripts may be nested. When the called script is
finished, execution of the original script will be resumed with the next command. This
feature can help you structure your scripts more clearly.
Turbo On
Turbo Off
In turbo mode, most screen elements are not updated during script execution and you are
not able to abort (e.g. by pressing Esc). This accelerates the script by up to 75% if a
lot of simple commands such as Move and NextObj are executed in a loop.
Debug
Chacune de toutes les commandes suivantes doivent être confirmées par l'utilisateur.
UseLogFile
Les messages d'erreurs sont écrites dans le fichier log "Scripting.log" dans le
dossier destine aux fichiers temporaries. These messages are not shown in a message box
that requires user interaction. Useful especially when running scripts on unattended
remote computers.
CurrentPos
GetSize
unlimited
Sont des mots-clés qui agissent comme subsitut pour remplacement ultérieur et peuvent
être utilisés où des paramètres numériques sont requis. Un script en cours
d'exécution "CurrentPos" correspond pour l'offset dans le fichier actif ou la
fenêtre disque, "GetSize" pour la taille en octets. "unlimited "
actually stands for the number 2,147,483,647.
|