
Aide
2. L'interface de l'utilisateur
3. Création et Configuration des Scripts
4.5 Établir les attributs d'un fichier
5.1 Alias de la base de registres pour commandes preg
5.3 Espaces à blanc dans les paramètres des commandes
iPDA est une application qui permet de contrôler une PDA avec un ordinateur du bureau. Quelques fonctions de iPDA sont le transfert des fichiers, l'accès au registre et l'exécution distante d'autres applications sur une PDA depuis un ordinateur du bureau.
Ces fonctions peuvent être configurées avec des scripts basés en texte.
Il est très important de maintenir le dispositif connecté à l'ordinateur jusqu'à ce que iPDA finisse d'exécuter tous les scripts.
Ceci est l'écran principal de l'interface d'iPDA pour l'utilisateur :

Dans la partie supérieure de cet écran vous trouverez de l'information sur votre PDA. On y affiche de l'information sur la connexion entre l'ordinateur de bureau et le PDA, le système d'exploitation du PDA et la mémoire disponible.
L'information affichée à droite appartient au script que iPDA va exécuter.
Au centre de l'écran vous verrez les commandes que iPDA va exécuter, les arguments et l'état.
Pour contrôler iPDA, vous pouvez utiliser les boutons en bas de l'écran ou la barre de menu.
iPDA utilise des scripts basés en texte pour réaliser des opérations entre l'ordinateur de bureau et le PDA.
Les scripts peuvent être crées ou modifiés avec n'importe quel éditeur du texte et il faut qu'ils soient enregistrés comme fichiers *.ipda.
Celle-ci est la source pour le script chargé dans l'image précédente :
// Script Heading
version 1.0.2
description WireLess Deployer Client
platform WinCE 4.0.0
model PPT8800
vendor SYMBOL
// Commands
pput .\4.txt \4.txt
pmd \ipda_test
pput .\1.txt \1.txt
pput .\2.txt \2.txt
pdel \4.txt
pput .\3.txt \3.txt
prd \ipda_test
pget \1.txt .\get_1.txt
C'est la première partie du script. Il n'est pas indispensable de fournir cette information mais il est utile d'identifier le but d'un script.
Cet information apparaîtra en haut à droite de l'écran principal de iPDA :
Syntaxe :
version <Version du script. Cela n'apparaît pas sur l'écran>
description <Description du script>
platform <Système d'exploitation pour lequel le script a été fait>
model <Model de PDA pour lequel le script a été fait>
vendor <Fabricant ou vendeur>
Ce sont des arguments optionnels que vous pouvez utiliser a fin de configurer le comportement de iPDA. Ils doivent être entre l'entête et la section de commandes.
Syntaxe :
|
Argument |
Description |
| noerror or no_error | Empêcher que iPDA arrête l'exécution du script en cas d'erreur. |
| nonext or no_next | Désactiver le bouton "Suivant". |
| setclock or set_clock | Configurer l'heure et le fuseau horaire du PDA comme ceux du PC. |
| run_once | Exécuter le script une seule fois. |
| autostart | Commencer l'exécution automatiquement. |
| autoexit | Fermer l'application quand l'exécution finit. |
C'est la partie principale du script. Les opérations que iPDA peut réaliser sont les suivantes:
|
Commande |
Syntaxe |
Description |
| pput | pput [-a|-k] <source_path> <target_path> | Copier un fichier de l'ordinateur du bureau au PDA. |
| pdel | pdel [-i] <file_path> | Effacer un fichier déjà existant sur le PDA. |
| prun | prun <file_path> | Exécuter une application valide sur le PDA ou, s'il le supporte, un fichier batch. |
| pget | pget [-a|-k] <source_path> <target_path> | Copier un fichier du PDA à l'ordinateur du bureau. |
| pmd | pmd [-i] <dir_path> | Créer un nouveau répertoire sur le PDA. |
| prd | prd [-i |-f] <dir_path> | Effacer un répertoire déjà existant sur le PDA. |
| preg | preg [-a] <registry_key> <target_path> | Exporter une clé de registre du PDA vers un fichier sur l'ordinateur du bureau. |
| pregmerge | pregmerge [-i] <source_path> | Importe des clefs de registre à partir d'un fichier stocké dans le PC vers la base de registres du PDA. |
| pdelreg | pdelreg [-i] <registry_key> | Enlève une clef de registre stockée dans le PDA. |
| pdelregval | pdelregval [-i] <registry_key> <registry_value> | Enlève une valeur de clef de registre stockée dans le PDA. |
| run | run <file_path> | Exécuter une application valide locale ou un fichier batch. |
| warmboot | warmboot | Le PDA réalise un warm boot. |
| coldboot | coldboot | Le PDA réalise un cold boot. |
| psetclock | psetclock | Configurer l'heure et le fuseau horaire du PDA comme ceux de l'ordinateur du bureau. |
| pmove | pmove [-o] <old_name> <new_name> | Renommer un fichier ou un répertoire déjà existant. |
| label | label <name> | Définir une étiquette qui peut être utilisée pour réaliser des sauts conditionnels. |
| condj | condj msg buttons [go-to:label | jump:n] [options:option1,option2,option3] | Faire des sauts conditionnels dans le script. |
| pappend | pappend <source_file> <target_file> | Ajouter fichier_source à fichier_cible, le fichier_cible est enregistré sur le PDA. |
| pamend | pamend -u|-a|-ua|-d [-i][-m][-c][-s] <source_file> <target_file> | Ajouter, mettre à jour, ou effacer des parties d'un fichier enregistré sur le PDA en utilisant un autre fichier enregistré sur l'ordinateur du bureau. |
| preplace | preplace [-rline][-i][-m] target_file <target_substring> <new_string> | Trouver des lignes avec une sous-chaîne spécifique pour les modifier ou les remplacer par d'autres. |
| pgetdir | pgetdir [-c |-i | -r | -o] <source_directory> <target_directory> | Copier un répertoire du PDA au PC. |
| pputdir | pputdir [-c |-i | -r | -o] <source_directory> <target_directory> | Copier un répertoire du PC au PDA. |
| psetattribute | psetattribute +r|-r|+h|-h <target_path> | Établir les attributs "lecture seule" et "caché" des fichiers placés dans un répertoire. |
| pkillprocess | pkillprocess [-i] <target_process> | Termine le processus qui s'exécute sur le PDA. |
| waitforconnection | waitforconnection | Arrêter l'exécution du script jusqu'à ce que la connexion avec le PDA soit rétablit. |
| pause | pause seconds | Arrêter l'exécution du script pendant une quantité spécifique de secondes. |
| pgetsysinfo | pgetsysinfo [-a] [-w] <file_path> | Récupère des informations sur le système de la PDA et les sauvegarde dans le fichier PC indiqué en paramètre. |
[-a] : mode ajouter. iPDA va ajouter le fichier source ou l'information du registre vers le fichier cible au lieu de le remplacer.
[-f] : forcer la suppression d'un fichier. iPDA éliminera tous les fichiers et sous-répertoires du répertoire qui est sur le point d'être supprimé.
[-i] : ignorer les erreurs. iPDA va ignorer les erreurs comme fichier non existant, répertoire non existant ou déjà existant, ligne non trouvée ou tags non trouvés.
[-k] : garder un fichier déjà existant. iPDA avertira l'utilisateur si un fichier à écrire existe déjà.
[-o] : réécrire le cible. Ce paramètre travaille seulement avec des fichiers. Lorsqu'on déplace un fichier, iPDA réécrit le fichier cible s'il existe déjà.
Condj permet de faire des sauts conditionnels dans le script, si bien que l'utilisateur peut arrêter l'exécution du script, sauter vers certaine ligne ou continuer l'exécution normalement, selon les boutons de message utilisés.
Une boîte de dialogue contenant le message écrit dans "msg" est affichée à l'utilisateur. Ce message peut être utilisé pour avertir d'une action critique, par exemple: cold/warm boot. Dans la boîte de dialogue on pourra faire apparaître jusqu'à trois boutons, dont la sélection détermine l'action suivante à exécuter.
La distance du saut conditionnel est déterminé par la distance jusqu'à "label", si elle a été définie, ou par la valeur de "n".
Syntaxe :
condj msg buttons [go-to:label|jump:n] [options:option1,option2,option3]
msg : la chaîne qui sera affichée dans la boîte de dialogue.
buttons : les boutons qui seront affichés dans la boîte de message peuvent être les constantes suivantes: MB_CONTINUE, MB_CONTINUESKIP, MB_CONTINUESTOP, MB_CONTINUESKIPSTOP ou leur équivalent MB_YES, MB_YESNO, MB_YESCANCEL, MB_YESNOCANCEL.
CONTINUE : continuer l'exécution du script.
STOP : arrêter l'exécution du script.
SKIP : sauter jusqu'à n'importe quelle ligne du script en utilisant les options "go-to:label" ou "jump:n". Si on n'a utilisé aucune, condj sautera la prochaine ligne et continuera avec la suivante.
go-to:label : si le bouton "Skip" est sélectionné, condj sautera jusqu'à la commande localisée sur la ligne suivante à l'étiquette.
jump:n : si le bouton "Skip" est sélectionné, condj sautera jusqu'à la commande localisée à n lignes de l'actuelle. Si n excède le nombre de lignes du script, on applique les règles suivantes: si n < 0 et la prochaine ligne à exécuter est négative, l'exécution du script continuera dès le début; si n > 0 et la prochaine ligne à exécuter est supérieure à la quantité totale de lignes du script, l'exécution sera arrêtée.
options:option1,option2,option3: Trois textes pour modifier les textes qui sont affichés dans les boutons de la boite de messages.Exemples :
Utilisation simple
pput config.cfg \Application\config.cfg
condj "Un warm boot va être effectué, voulez-vous le sauter?" MB_CONTINUESKIP
warm boot
.
.
.Après que le fichier soit écrit sur le PDA, iPDA va exécuter la commande de condj et afficher cette boîte de dialogue :
Si "Skip" est sélectionné, iPDA sautera la commande de warm boot et exécutera la commande suivante. Par contre, si "Continue" est sélectionné, le warm boot sera réalisé.
Si vous ne voulez pas donner la possibilité de sauter le warm boot à l'utilisateur, mais seulement l'alerter, vous pouvez utiliser la combinaison de boutons MB_CONTINUE.
Utilisation avancée
S'il y a une erreur, peut-être que quelques séquences du script doivent être répétés, ou que quelques séquences du script ne sont pas nécessaires car elles ont été réalisées auparavant. Dans ces cas-là, l'utilisation avancée de condj est obligatoire. L'utilisation des options "jump:n" et "go-to:label" est très simple et sera expliquée ci-dessous:
pput config.cfg \Application\config.cfg
condj "Les prochaines commandes vont configurer la PDA, voulez-vous les sauter ou finir l'exécution (sauter aussi le warm boot)?" MB_CONTINUESKIPSTOP go-to:end_configuration
.
.
.
label end_configuration
warm bootLorsque la commande condj est exécutée, cette boîte de dialogue sera affichée :
Si l'utilisateur ne veut pas faire le warm boot, il devrait choisir le bouton "Stop". S'il sélectionne le bouton "Skip", il sautera toutes les commandes entre celle qui contient le condj et celle qui contient l'étiquette, si bien que la prochaine commande à être exécutée sera le warm boot.
Au lieu d'utiliser l'option "go-to:label", il est possible d'utiliser "jump:n". Avec cette dernière, le saut doit être mesuré à l'avance, alors que la première est plus simple parce qu'elle permet de modifier le script facilement, sans avoir besoin de recalculer les sauts après chaque modification.
Les commandes suivantes sont équivalentes, change seulement l'affichage à l'utilisateur :
MB_YES [YES] = MB_CONTINUE [Continue] MB_YESNO [YES] [NO] = MB_CONTINUESKIP [Continue] [Skip] MB_YESCANCEL [YES] [Cancel] = MB_CONTINUESTOP [Continue] [Stop] MB_YESNOCANCEL [YES] [NO] [Cancel] = MB_CONTINUESKIPSTOP [Continue] [Skip] [Stop]
Cette commande est utilisée pour ajouter, mettre à jour ou effacer des parties d'un fichier enregistré sur le PDA en utilisant un autre fichier enregistré sur le PC. Pour chercher une partie d'un fichier pamend utilise la première et la dernière ligne du fichier du PC qui ont du texte (dorénavant "tags"). Selon l'action passée comme paramètre, pamend va remplacer le texte du fichier sur le PDA avec celui du fichier sur l'ordinateur (mettre à jour), il va effacer le texte du PDA ou il va ajouter le texte du PC à celui du fichier du PDA.
Les options de comparaison permettent de ne pas faire de distinction entre des majuscules et des minuscules, de ne pas considérer les espaces à blanc, d'ignorer des erreurs et de faire des recherches multiples.
Syntaxe :
pamend -u|-a|-ua|-d [-i][-m][-c][-s] source_file target_file
Opérations :
Les tags sont cherchés dans le fichier du PDA et une des actions suivantes est réalisée:
Update (-u) : si les tags son trouvés, pamend va remplacer le texte du PDA qui se trouve entre les tags par le texte du fichier du PC; s'ils ne sont pas trouvés, l'utilisateur sera averti (au moins que l'option -i soit configurée).
Add (-a) : si les tags son trouvés, l'utilisateur sera averti (au moins que l'option -i soit configurée). Si les tags ne sont pas trouvés, pamend ajoutera le texte du PC à la fin du texte du PDA.
Update or Add (-ua) : si les tags son trouvés, une mise à jour sera réalisée; sinon, un ajout.
Delete (-d) : si les tags son trouvés, le texte qui se trouve entre eux sera éffacé. Si les tags ne sont pas trouvés, pamend va avertir l'utilisateur (au moins que l'option -i soit configurée).
Options :
-i : ignorer les erreurs de recherche.
-m : pamend va rechercher plus d'une paire de tags. S'il trouve plus d'une paire, et cette option n'est pas utilisée, l'utilisateur sera alerté.
-s : la comparaison sera faite en éliminant les espaces des chaînes.
-c : la comparaison ne fait pas de distinction entre les majuscules et les minuscules.Exemple :
Cet exemple montre une mise à jour d'un fichier enregistré sur le PDA. Le fichier cible est commands.txt et le fichier source est update.txt :
\Application\commands.txt update.txt \START_PATTERNS
FILE NAMES PATTERNS:
******************************************
* <YYMMDD> year month day
* <DDMMYY> day month year
* <YYYYMMDD> year month day
* <DDMMYYYY> day month yyyy
******************************************
\END_PATTERNS
TIPS:
- how to execute a .bat file ?
run file.bat\ start_patterns FILE NAMES PATTERNS:
******************************************
* <YYMMDD> year month day
* <DDMMYY> day month year
* <YYYYMMDD> year month day
* <DDMMYYYY> day month yyyy
* <YYYY> year four digits
* <YY> year two last digits
* <MM> month
* <DD> day
* <HMS> hour minute second
* <HM> hour minute
* <H> hour
* <M> minute
* <S> second
******************************************
\END_PATTERNS
Maintenant on exécute ce script :
pamend -ua -c -s update.txt \Application\commands.txt
pamend va rechercher le texte dans commands.txt et il va mettre à jour selon update.txt. Étant donné que la comparaison ne fait pas de distinction entre des majuscules et des minuscules, et les espaces à blanc ne sont pas considérés, les tags sont trouvés et le texte est remplacé :
\Application\commands.txt \ start_patterns FILE NAMES PATTERNS:
******************************************
* <YYMMDD> year month day
* <DDMMYY> day month year
* <YYYYMMDD> year month day
* <DDMMYYYY> day month yyyy
* <YYYY> year four digits
* <YY> year two last digist
* <MM> month
* <DD> day
* <HMS> hour minute second
* <HM> hour minute
* <H> hour
* <M> minute
* <S> second
******************************************
\END_PATTERNSTIPS:
- how to execute a .bat file ?
run file.bat
Cette commande trouve des lignes qui ont une sous-chaîne spécifique à fin de les modifier ou les remplacer.
Syntaxe :
preplace [-rline][-i][-m] target_file target_substring new_string
-rline : si la ligne est trouvée, elle sera remplacée par "new_string". Si cette option n'est pas utilisée, la ligne sera modifiée et preplace va remplacer "target_substring" par "new_string".
-i : ignorer des erreurs de recherche.
-m : preplace va rechercher plus d'une ligne. Si cette option n'est pas utilisée, l'utilisateur sera averti.Exemple :
Cet exemple montre l'utilisation de l'option -rline avec le script suivante :
preplace -rline config_rline.cfg "10.10.10.133" "IP=10.10.10.133"
preplace config.cfg "10.10.10.133" "192.168.3.44"
config_rline.cfg config.cfg [TERMINAL]
OffOnExtPwr=Yes
PwdWConf=234
PwdExit=307
IPAddr=10.10.10.133
CBMenuMainMenu=1
[DATA]
LocalIPAddr=10.10.10.133[TERMINAL]
OffOnExtPwr=Yes
PwdWConf=234
PwdExit=307
IPAddr=10.10.10.133
CBMenuMainMenu=1
[DATA]
LocalIPAddr=10.10.10.133
Le contenu de chaque fichier est le même, mais après l'exécution du script, le résultat est différent :
config_rline.cfg config.cfg [TERMINAL]
OffOnExtPwr=Yes
PwdWConf=234
PwdExit=307
IP=10.10.10.133
CBMenuMainMenu=1
[DATA]
IP=10.10.10.133[TERMINAL]
OffOnExtPwr=Yes
PwdWConf=234
PwdExit=307
IPAddr=192.168.3.44
CBMenuMainMenu=1
[DATA]
LocalIPAddr=192.168.3.44
Ces commandes permettent de copier des répertoires depuis le PDA vers le PC et vice versa. Vous pouvez utiliser les caractères joker '*' et '?' pour filtrer des fichiers et des répertoires.
Syntaxe :
pgetdir [-c |-i | -r | -o] source_directory target_directory
pputdir [-c |-i | -r | -o] source_directory target_directoryOptions :
-c : iPDA s'assure que le répertoire cible soit crée avant de commencer à copier les fichiers.
-i : si un fichier existe déjà, iPDA continue avec le fichier/répertoire suivant, sans avertir l'utilisateur.
-r : copier les répertoires avec ses fichiers de manière récursive.
-o : réécrire chaque fichier trouvé sur le répertoire cible.Remarques :
Si vous utilisez les caractères joker et l'option '-r', le filtre ne s'applique qu'au premier répertoire, de sorte que les sous-répertoires seront copiés avec tous leurs fichiers.Exemple :
Si vous exécutez le script suivant :
pgetdir \test\*.exe \binBackup\
le résultat suivant est obtenu :
\test\
\binBackup\ Doc\
notepad.exe
calc.exe
phones.txt
a1.bmp
flexrpvserver.exenotepad.exe
calc.exe
flexrpvserver.exe
Autre exemple :
pgetdir \test\temp?.txt \temp\
le résultat suivant est obtenu :
\test\
\temp\
Doc\
temp1.txt
calc.exe
phones.txt
temp2.txt
flexrpvserver.exetemp1.txt
temp2.txt
Le commande psetattribute change les attributs "lecture seule" et "caché" des fichiers placés dans un répertoire. À fin de filtrer certains types de fichiers, vous pouvez utiliser les caractères joker '*' et '?'.
Syntaxe :
psetattribute +r|-r|+h|-h target_pathOptions :
+r/-r : activer/désactiver l'attribut "lecture seule".
+h/-h : activer/désactiver l'attribut "caché".
Le paramètre registry_key doit être
entouré par des crochets.
Abréviations des clés principales :
HKLM : HKEY_LOCAL_MACHINE
HKCU : HKEY_CURRENT_USER
HKCR : HKEY_CLASSES_ROOT
HKU : HKEY_USERS
Pour exporter une clé et ses sous-clés,
utilisez des crochets de cette manière : [HKLM\Comm]
Pour exporter seulement les valeurs
de la clé, utilisez des crochets de cette manière : [HKLM]\Comm
Les noms des fichiers à utiliser comme des arguments de ces commandes peuvent être des noms absolus ou ils peuvent être créés dépendant de la date.
Les formats que iPDA support sont :
<YYMMDD> année mois jour
<DDMMYY> jour mois année
<YYYYMMDD> année (4 digits) mois jour
<DDMMYYYY> jour mois année (4 digits)
<YYYY> année (4 digits)
<YY> les deux derniers digits de l'année
<MM> mois
<DD> jour
<HMS> heure minute seconde
<HM> heure minute
<H> heure
<M> minute
<S> seconde
Exemples :
Si vous exécutez un script le 17 de mars de 2006 à 12:55 am les résultats seront :
<YYMMDD> : 060317
<HM> : 1255
<DD>-<MM>-<YY> : 17-03-06
Si un paramètre
contient des espaces, vous devez l'entourer entre des guillemets.
Exemple :
pput ".\file to copy.txt" "\copy file.txt"
preg "[HKLM\software\section name]" file.reg
iPDA fournit des variables d'environnement qui peuvent être utilisées pour personnaliser chaque procédure d'installation et de configuration. La valeur de ces variables peut changer selon la langue du système d'exploitation et la plate-forme de l'unité. Les variables d'environnement sont:
Alias
Chemin (Pour un OS en Anglais)
%PDA_DESKTOP% \Windows\Desktop %PDA_PROGRAMS% \Windows\Programs %PDA_PERSONAL% \My Documents %PDA_STARTUP% \Windows\StartUp %PDA_RECENT% \Windows\Recent %PDA_FONTS% \Windows\Fonts %PDA_FAVORITES% \Windows\Favorites %PDA_WINDOWS% \Windows %PDA_PROGRAM_FILES% \Program Files %PDA_START_MENU% \Windows\Start Menu %PDA_OEM_VERSION% 6.30.0000 %PDA_OEM_NAME% SYMBOL PPT8800 %PDA_PLATFORM_ID% SYMBOL %PDA_PRESET_ID% SYMBOL %PDA_OEM_VERSION% 6.30.0000 %PDA_OEM_NAME% SYMBOL PPT8800 %PDA_PLATFORM_ID% SYMBOL %PDA_PRESET_ID% SYMBOL