Lección 4: Utilización de IF, WHILE y GOTO

IF y WHILE Son elementos del lenguaje para evaluar las condiciones. Ud puede utilizar para evaluar las condiciones de error, La realizacion de las acciones un numero determinado de veces etc. Puesto qye todas las variables en el ScriptFTP contienen texto, El texto " verdadero " texto como verdadero .Cualquier otro texto se evalua como falso.Por ejemplo :

IF("TRUE")
        PRINT("ScriptFTP rules")
END IF

IF("fdasfdas")
        PRINT("hi")
END IF

$mi variable ="TRUE"

if($mi variable )
        PRINT("ScriptFTP rules")
END IF

Y de salida es:

ScriptFTP normas
ScriptFTP normas

Como se puede ver desde la salida del script de la instrucción IF solo se ejecuta si el cuerpo de las condiciones es igual al texto verdadero "VERDADERO".

Veamos un ejemplo mas útil. En el siguiente script el IF se usa para comprobar si la siguiente declaración OPENHOST se ejecutó correctamente:

# conectarse a ftp.myhost.com y descargar
# Todos los archivos en la carpeta.
#
#
# Inicio de sesión del servidor:
$host="ftp.myhost.com"
$user="carl"
$password="1234567890"

# Es una etiqueta y marca un punto
# en el script
:start


# conectar al servidor FTP
$resulta=openhost($host,$user,$password)

# ver lo que pasó en openhost
IF($result=="OK")
        PRINT("CONNECTED")
ELSE
        PRINT("Cannot connect. Waiting 5 seconds.")
        SLEEP(5)
        GOTO :comienzo
END IF

# hacer las cosas
LOCALCHDIR("C:\localwww\")
CHDIR("www")
GETFILE("*.*")

CLOSEHOST()
PRINT("FINISHED")
EXIT

El comando WHILE ejecutará todos los comandos dentro de él, siempre y cuando la condición sea "TRUE". En la siguiente secuencia de WHILE nunca terminará mientras no se mantenga un directorio de script sincronizado con un sitio FTP:

# Este script,bucle, se puede mantener a voluntad indefinidamente
# Directorio local sincronizado con un sitio FTP.
#
#
# Información de acceso al servidor
$host="172.16.0.4"
$user="carl"
$password="123456"

# conectar con el servidor
OPENHOST($host,$user,$password)

# Change current remote directory
CHDIR("remotedir/remotesubdir")

# cambiar el directorio local actual
LOCALCHDIR("C:\localdir\")

# Un bucle indefinido
WHILE("TRUE")
        $result=GETFILE("*.*")
        IF($result!="OK")
                PRINT("ERROR in GetFile, exiting")
                # Exit with error code 1
                EXIT(1)
        ELSE
                PRINT("All files downloaded. Waiting 10 seconds")
                SLEEP(10)
        END IF
END WHILE




Next Lesson: manejo de las lista de archivos