Ayuda

1. Introducción

2. La interfaz del usuario

3. Creación y Configuración de Scripts

4. Descripción de los comandos

    4.1 Salto condicional

    4.2 Enmendar

    4.3 Reemplazar

    4.4 Movimiento de carpetas

    4.5 Establecer los atributos de un archivo

5. Observaciones

    5.1 Alias para las claves del registro en el comando preg

    5.2 Nombres de archivos

    5.3 Espacios en blanco en los parámetros

    5.4 Carpetas especiales

 


1. Introducción

iPDA es una aplicación que permite controlar una PDA desde una PC. Algunas de las funciones de iPDA son transferencia de archivos, acceso a archivos, ejecución remota de aplicaciones en una PDA desde una PC.

Estas funciones pueden configurarse a partir de scripts basados en un texto.

Es muy importante mantener el dispositivo conectado a la PC hasta que iPDA termine de correr los scripts.

Volver


2. La interfaz del usuario

Esta es la pantalla de iPDA para la interfaz del usuario principal.

En la parte superior de esta pantalla se encuentra la información acerca de su PDA. Aquí se muestra información acerca de la conexión entre la PC y su PDA, el sistema operativo de la PDA y la memoria disponible.

La información provista a la derecha pertenece al script que ejecutará iPDA.

En el centro de esta pantalla se encuentran los comandos que iPDA ejecutará, sus argumentos y su estado.

Para controlar iPDA es posible usar tanto los botones que se encuentran en la parte inferior de la pantalla como la barra de menú.

Volver


3. Creación y Configuración de Scripts

iPDA usa scripts basados en texto para realizar operaciones entre la PC y la PDA.

Estos scripts pueden crearse o modificarse con cualquier editor de texto y deben ser guardados como archivos *.ipda.

Esta es la fuente para el script cargado en la imagen anterior:

 

// 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

 

Encabezamiento del Script

Esta es la primera parte de un script. No es imprescindible proveer esta información, pero resulta útil identificar el propósito de un script. 

Esta información aparecerá en la parte superior izquierda de la pantalla principal de iPDA.

Sintaxis: 

version <Versión del script. Esto no aparece en pantalla.>
description <Descripción del script>
platform <Sistema operativo para el cual fue hecho el script>
model <Modelo de PDA para el cual fue hecho el script>
vendor <Fabricante o vendedor>

 

Argumentos de Configuración de un Script:

Estos son argumentos opcionales que se pueden usar para configurar el comportamiento de iPDA. Deben estar entre el encabezamiento y la sección de comandos.

Sintaxis:

Argumento

Descripción

noerror or no_error Impide que iPDA detenga la ejecución del script si ocurre un error.
nonext or no_next Inhabilita el botón "Siguiente".
setclock or set_clock Coordina la hora y la zona horaria de la PDA con la hora y la zona horaria de la PC. 
run_once Ejecuta el script sólo una vez.
autostart Empieza la ejecución automáticamente.
autoexit  Cierra la aplicación al finalizar la ejecución.

 

Comandos del Script:

Esta es la sección principal de cualquier script. En la siguiente lista se encuentran las operaciones que iPDA puede realizar:

Comando

Sintaxis

Descripción

pput pput [-a|-k] <source_path> <target_path> Copia un archivo desde la PC a la PDA.
pdel pdel [-i] <file_path> Borra un archivo existente en la PDA.
prun prun <file_path> Ejecuta una aplicación válida en la PDA o, si lo soporta, un archivo batch.
pget pget [-a|-k] <source_path> <target_path> Copia un archivo desde la PDA a la PC.
pmd pmd [-i] <dir_path> Crea una nueva carpeta en la PDA.
prd prd  [-i |-f] <dir_path> Borra una carpeta ya existente en la PDA.
preg  preg [-a] <registry_key> <target_path> Exporta una clave de registro desde la PDA a un archivo en la PC.
pregmerge pregmerge [-i] <source_path> Importa las claves de registro desde un archivo almacenado en la PC hacia el registro de la PDA.
pdelreg pdelreg [-i] <registry_key> Remueve un clave de registro almacenada en la PDA.
pdelregval pdelregval [-i] <registry_key> <registry_value> Remueve un valor de una clave de registro almacenada en la PDA.
run run <file_path> Ejecuta una aplicación válida local o un archivo batch.
warmboot warmboot La PDA realiza un warm boot.
coldboot coldboot La PDA realiza un cold boot.
psetclock psetclock Coordina la hora y la zona horaria a la hora y zona horaria de la PC.
pmove pmove [-o] <old_name> <new_name> Renombra una carpeta o un archivo existente.
label label <name> Permite definir una etiqueta que puede usarse para hacer saltos condicionales.
condj condj msg buttons [go-to:label | jump:n] Permite hacer saltos condicionales dentro del script.
pappend pappend <source_file> <target_file> Agrega un archivo_fuente a archivo_destino, el archivo_destino es guardado en la PDA.
pamend pamend -u|-a|-ua|-d [-i][-m][-c][-s] <source_file> <target_file> Inserta, actualiza o borra partes de un archivo guardado en la PDA usando otro guardado en la PC.
preplace preplace [-rline][-i][-m] target_file <target_substring> <new_string> Encuentra líneas que contengan una determinada subcadena para modificarlas o reemplazarlas por otras.
pgetdir pgetdir [-c |-i | -r | -o] <source_directory> <target_directory> Copia una carpeta desde la PDA a la PC.
pputdir pputdir [-c |-i | -r | -o] <source_directory> <target_directory> Copia una carpeta desde la PC a la PDA.
psetattribute psetattribute +r|-r|+h|-h <target_path> Establece los atributos "sólo lectura" y "oculto" de los archivos ubicados en una carpeta.
pkillprocess pkillprocess [-i] <target_process> Finaliza una proceso que está corriendo en la PDA.
waitforconnection waitforconnection Detiene la ejecución del script hasta que la conexión con la PDA sea restablecida.
pause pause seconds Detiene la ejecución del script por una cantidad determinada de segundos.
Opciones en común:

[-a]: modo anexar. iPDA anexará el archivo fuente o la información de registro al archivo de destino en lugar de reemplazarlo.
[-f]: fuerza la eliminación de un archivo. iPDA eliminará todos los archivos y subcarpetas de la carpeta que se va a eliminar. 
[-i]: ignorar errores. iPDA ignorará errores tales como archivo no existente, directorio no existente o ya existente, línea no encontrada o etiquetas no encontradas. 
[-k]: mantener un archivo existente. iPDA advertirá al usuario si un archivo que se está por escribir ya existe. 
[-o]: rescribe el archivo de destino. Trabaja sólo con archivos. Al mover un archivo, iPDA rescribe el archivo de destino si ya existe.


4. Descripción de los comandos:

4.1 Salto condicional (condj)

Condj permite realizar saltos condicionales dentro del script, otorgándole al usuario la posibilidad de detener la ejecución del script, saltar partes hasta cierta línea o continuar normalmente con la ejecución, dependiendo de los botones de mensaje usados. 

Se mostrará al usuario un cuadro de mensaje con el mensaje contenido en "msg". Este mensaje puede ser usado para advertir acerca de una acción crítica, por ejemplo: cold/warm boot. En los cuadros de mensaje pueden mostrarse hasta tres botones y su selección determina la próxima acción a ser ejecutada.  

La distancia del salto condicional es determinada por la distancia hasta "label", si ésta ha sido definida, o por el tamaño de "n".

Sintaxis:

condj msg buttons [go-to:label|jump:n]

msg: cadena que será mostrada en el cuadro de mensaje.

buttons: los botones que aparecerán en el cuadro de mensaje pueden ser las siguientes constantes: MB_CONTINUE, MB_CONTINUESKIP, MB_CONTINUESTOP, MB_CONTINUESKIPSTOP.

CONTINUE: continúa la ejecución del script. 
STOP: interrumpe la ejecución del script.
SKIP: salta hasta cualquier parte del script usando las opciones "go-to:label" o "jump:n". Si no se ha definido ninguna de estas dos, condj salta la próxima línea y continúa con la siguiente.

go-to:label : si se selecciona el botón "Saltear", condj salta hasta el comando ubicado en la línea siguiente a donde se encuentra la etiqueta.

jump:n : si se selecciona el botón "Saltear", condj salta hasta el comando que se encuentra a n líneas del actual. Si n excede el número de líneas de script, se aplican las siguientes reglas: si n < 0 y la siguiente línea a ejecutar es negativa, la ejecución del script continuará desde el principio; si n > 0 y la siguiente línea a ejecutar es mayor que la cantidad total de líneas del script, la ejecución será detenida. 

Ejemplos:       

Uso básico

pput config.cfg \Application\config.cfg
condj "Se realizará un warm boot, desea saltearlo?" MB_CONTINUESKIP
warm boot
.
.
.

Luego de que el archivo es escrito en la PDA, iPDA ejecutará el comando del condj y mostrará el siguiente cuadro de mensaje:

Si se selecciona "Saltear", iPDA salteará el comando del warm boot y ejecutará el comando siguiente. Haciendo clic sobre "Continuar" se realizará el warm boot. 

Si no desea darle al usuario la oportunidad de saltear el comando del warm boot sino tan sólo advertirle, puede usar la combinación de botones MB_CONTINUE.

Uso avanzado

Si ocurre un error tal vez algunos de los pasos del script deban ser repetidos, o tal vez algunos no necesitan ser hechos porque fueron realizados previamente. En esos casos se hace obligatorio el uso avanzado de los saltos condicionales. El uso de las opciones "jump:n" y "go-to:label"  es muy simple y será explicado en los siguientes ejemplos:

pput config.cfg \Application\config.cfg
condj "Los siguientes comandos configurarán la PDA, desea saltearlos o finalizar la ejecución (saltear el warm boot también)?"" MB_CONTINUESKIPSTOP go-to:end_configuration
.
.
.
label end_configuration
warm boot

Cuando se ejecuta el comando condj, aparece el siguiente cuadro de mensaje:

Si el usuario ni siquiera desea realizar el warm boot, debe elegir el botón "Parar". En cambio, seleccionando el botón "Saltear", salteará todos los comandos entre el comando de condj y la etiqueta, de manera que el próximo comando a ejecutarse será el warm boot.

En lugar de "go-to:label" se puede utilizar la opción "jump:n". La diferencia entre estas opciones es que en la segunda el salto debe ser medido de antemano, mientras que la primera es más amigable, dado que permite modificar el script fácilmente, sin necesidad de recalcular los saltos en cada modificación.

Los comandos siguientes son equivalentes solo cambia lo que se muestra al usuario:

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]

 


 

4.2 Enmendar (pamend)

Este comando es usado para insertar, actualizar o borrar partes de un archivo guardado en la PDA usando otro archivo guardado en la PC. Para buscar partes de un archivo, pamend usa la primera y la última línea no vacía del archivo de la PC (de ahora en adelante "etiquetas"). Dependiendo de la acción pasada como parámetro, pamend reemplazará el texto del archivo de la PDA por el texto del archivo de la PC (actualizar), borrará el texto de la PDA (borrar) o añadirá el texto de la PC al final del texto de la PDA (insertar). 

Las opciones de comparación permiten que la búsqueda no haga distinción entre mayúsculas y minúsculas, no considere espacios en blanco, ignore errores o haga múltiples búsquedas.  

Sintaxis:
pamend -u|-a|-ua|-d [-i][-m][-c][-s] source_file target_file

Operaciones:
Las etiquetas son buscadas en el archivo de la PDA y entonces se realiza alguna de las siguientes acciones:

Update (-u): si se encuentran las etiquetas, pamend reemplaza el texto de la PDA que está entre ellas por el texto del archivo de la PC; si no se las encuentra, el usuario recibirá una advertencia (salvo si está configurada la opción "-i"). 

Add (-a): si se encuentran las etiquetas, el usuario recibirá una advertencia (salvo si está configurada la opción "-i"). Si las etiquetas no son encontradas, pamend añadirá el texto del archivo de la PC al final del texto del archivo de la PDA.

Update or Add (-ua): si se encuentran las etiquetas, se realizará una actualización. Si no se encuentran, se realizará una inserción.

Delete (-d): si se encuentran las etiquetas en el archivo de la PDA, el texto que se encuentra entre ellas será eliminado. Si no se encuentran, pamend advertirá al usuario (salvo si está configurada la opción "-i").

Opciones:
-i: ignorar errores de búsqueda.
-m: pamend busca más de un par de etiquetas. Si encuentra más de un par y no se utiliza esta opción, el usuario recibirá una advertencia. 
-s: la comparación será efectuada removiendo espacios de las cadenas. 
-c: la comparación no hace distinción entre mayúsculas y minúsculas. 

Ejemplo:

Este ejemplo consiste en mostrar una actualización de un archivo guardado en la PDA. El archivo destino es commands.txt y el archivo fuente es 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

          Ahora ejecutamos el siguiente script:

pamend -ua -c -s update.txt \Application\commands.txt

pamend buscará el texto en commands.txt lo actualizará usando update.txt. Dado que la comparación no hace distinción entre mayúsculas y minúsculas y no considera los espacios en blanco, las etiquetas son encontradas y el texto es reemplazado obteniendo como resultado:

\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_PATTERNS

TIPS:
- how to execute a .bat file ?
run file.bat 


 

4.3 Reemplazar (preplace)

Este comando encuentra líneas que tengan una determinada subcadena a fin de modificarlas o reemplazarlas por otras. 

Sintaxis:

preplace [-rline][-i][-m] target_file target_substring new_string

-rline: si se encuentra la línea, toda la línea será reemplazada por "new_string". Si no se usa este comando, preplace reemplazará únicamente "target_substring" por "new_string".
-i: ignorar errores de búsqueda.
-m: preplace buscará más de una línea. Si no se usa este comando, el usuario recibirá una advertencia. 

Ejemplo:

Este ejemplo muestra el uso de la opción -rline en un script:

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

 

El contenido de cada línea es el mismo, pero después de la ejecución del script el resultado es diferente:

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

4.4 Movimiento de carpetas: uso de pgetdir y pputdir

Estos comandos permiten copiar carpetas desde la PC a la PDA y viceversa. Está permitido el uso de los comodines '*' y '?' para filtrar archivos y carpetas. 

Sintaxis:
pgetdir [-c |-i | -r | -o] source_directory target_directory
pputdir [-c |-i | -r | -o] source_directory target_directory

Opciones:
-c: asegura que la carpeta de destino sea creada antes de empezar a copiar los archivos. 
-i: si un archivo ya existe, continúa con el siguiente archivo o carpeta sin advertir al usuario. 
-r: copia las carpetas y sus archivos de manera recursiva. 
-o: rescribe cada archivo encontrado en la carpeta de destino.

Observaciones:

Si se usan los comodines y la opción '-r', el filtro sólo se aplica la primera carpeta, de manera que las subcarpetas serán copiadas junto con todos sus archivos. 

Ejemplos:

Si se ejecuta el siguiente script:

pgetdir \test\*.exe \binBackup\

se obtiene el siguiente resultado:

\test\

\binBackup\
Doc\
notepad.exe
calc.exe
phones.txt
a1.bmp
flexrpvserver.exe
notepad.exe
calc.exe
flexrpvserver.exe

 

Otro ejemplo:

pgetdir \test\temp?.txt \temp\

se obtiene el siguiente resultado:

\test\

\temp\

Doc\
temp1.txt 
calc.exe
phones.txt
temp2.txt 
flexrpvserver.exe
temp1.txt 
temp2.txt 

4.5 Establecer los atributos de un archivo

El comando psetattribute permite cambiar los atributos "sólo lectura" y "oculto" de los archivos ubicados en una carpeta. Está permitido el uso de los comodines '*' y '?' para filtrar cierto tipo de archivos. 

Sintaxis:
psetattribute +r|-r|+h|-h target_path

Opciones:
+r/-r: activa/desactiva el atributo "sólo lectura". 
+h/-h: activa/desactiva el atributo "oculto". 


5. Observaciones:

    5.1 Alias para las claves del registro en el comando preg

        Sintaxis: preg [-a] <registry_key> <target_path>

        El parámetro registry_key debe estar encerrado entre corchetes.
        Abreviaturas para las principales claves: 
            HKLM : HKEY_LOCAL_MACHINE
            HKCU : HKEY_CURRENT_USER 
            HKCR : HKEY_CLASSES_ROOT
            HKU : HKEY_USERS 

        Para exportar una clave y sus subclaves use corchetes de la siguiente manera: [HKLM\Comm] 
        Para exportar únicamente los valores de la clave, use los corchetes de la siguiente manera: [HKLM]\Comm   

    5.2 Nombres de archivos:

        Los nombres de archivos a usar como argumentos para estos comandos pueden ser nombres absolutos o pueden ser creados usando patrones de fecha y hora. 

        Éstos son los patrones que soporta iPDA: 

        Ejemplos:

            Si ejecuta un script el 17 de marzo de 2006 a las 12:55 am éstos serán los resultados:

        <YYMMDD>: 060317

        <HM>: 1255

        <DD>-<MM>-<YY>: 17-03-06

    5.3 Espacios en blanco en los parámetros:

        Si un parámetro tiene espacios en blanco, es necesario encerrarlo entre comillas.
            
        Ejemplo:

    pput ".\file to copy.txt" "\copy file.txt"
    preg "[HKLM\software\section name]" file.reg

    5.3 Carpetas Especiales

En procedimientos de instalación se utilizan carpetas creadas por el sistema ej: \Windows, \Program Files. Como el nombre de estas carpetas cambia dependiendo del sistema operativo, iPDA provee una serie de alias (similares a la variables de entorno de Windows) para que los scripts puedan ser usados en cualquier PDA independientemente del idioma. Los alias disponibles son:

Alias

Dirección (Versión Inglés)

%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

Volver