Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/06/2008, 12:47
Avatar de dogduck
dogduck
 
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 19 años, 1 mes
Puntos: 19
Respuesta: agrupar sentencias/comandos en programas batch o lotes

Para lo del If, consulta la ayuda:
Cita:
C:\Users\mua>if /?
Realiza el procesamiento condicional de los programas por lotes.

IF [NOT] ERRORLEVEL número comando
IF [NOT] cadena1==cadena2 comando
IF [NOT] EXIST archivo comando

NOT Especifica que Windows debe llevar a cabo el comando sólo
si la condición es falsa.

ERRORLEVEL número Especifica una condición verdadera si el último programa
que se ejecutó devolvió un código de salida igual o mayor
que el número especificado.

cadena1==cadena2 Especifica una condición verdadera si las cadenas de
texto especificadas coinciden.

EXIST archivo Especifica una condición verdadera si el archivo
especificado existe.

comando Especifica el comando que se va a ejecutar si se cumple la
condición. Comando puede ir seguido de la palabra clave
ELSE, que ejecutará el comando tras las palabra clave ELSE
si la condición especificada es FALSE.

La cláusula ELSE debe aparecer en la misma línea que la del comando que
sigue a IF Por ejemplo:

IF EXIST archivo. (
del archivo.
) ELSE (
echo archivo. no existente.
)

Lo siguiente NO funcionará porque el comando del debe terminar con una
nueva línea:

IF EXIST archivo. del archivo. ELSE echo archivo. no existente

Tampoco funcionaría lo siguiente, ya que el comando ELSE debe estar en la
misma línea que el comando IF:

IF EXIST archivo. del archivo.
ELSE echo archivo. no existente

Si desea mantenerlo todo en una misma línea, lo siguiente funcionaría:

IF EXIST archivo. (del archivo.) ELSE echo archivo. no existente

Si los comandos de extensión están habilitados IF cambia así:

IF [/I] cadena1 op-de-comparación cadena2 comando
IF CMDEXTVERSION número comando
IF DEFINED variable comando

donde op-de-comparación puede ser:

EQU - igual
NEQ - no igual
LSS - menor que
LEQ - menor que o igual
GTR - mayor que
GEQ - mayor que o igual

y el modificador /I, si se especifica, realiza comparaciones de cadena que
no distinguen entre mayúsculas y minúsculas. El modificador /I también puede
usarse en la forma cadena1==cadena2 de IF. Estas comparaciones son genéricas,
por lo que si tanto cadena1 como cadena2 se constituyen únicamente por dígitos
numéricos, entonces las cadenas se convierten a números y se realiza una
comparación numérica.

El condicional CMDEXTVERSION funciona sólo como ERRORLEVEL, excepto si se
compara con un número de versión interna asociada con las extensiones de
comando. La primera versión es 1. Será incrementada en uno cuando las
significantes mejoras sean agregadas a las extensiones de comando. El
condicional CMDEXTVERSION nunca es verdadero cuando las extensiones de
comando están deshabilitadas.

El condicional DEFINED funciona sólo como EXISTS excepto cuando toma un
nombre de variable de entorno y vuelve como verdadero si se define la
variable de entorno.

%ERRORLEVEL% se expandirá a una representación de cadena del valor actual
de ERRORLEVEL, siempre y cuando no exista ya una variable de entorno con el
nombre ERRORLEVEL, en cuyo caso obtendrá su valor.

Después de ejecutar un programa, lo siguiente ilustrará el uso de ERRORLEVEL

goto answer%ERRORLEVEL%
:respuesta0
echo Programa ha devuelto el código 0
:respuesta1
echo Programa ha devuelto el código 1

También puede usar las comparaciones numéricas anteriores:

IF %ERRORLEVEL% LEQ 1 goto okay

%CMDCMDLINE% se expandirá a una línea de comando original pasada al anterior
CMD.EXE a cualquier proceso CMD.EXE, siempre y cuando no exista ya una
variable de entorno con el nombre CMDCMDLINE, en cuyo caso obtendrá su valor.

%CMDEXTVERSION% se expandirá a una representación de la cadena del valor
actual CMDEXTVERSION, siempre y cuando no exista ya una variable de entorno
con el nombre CMDEXTVERSION, en cuyo caso obtendrá su valor
Respecto a FIND, tendrias que probar con FINDSTR, y monitorizar el rendimiento de la cpu ...

Respecto a lo de las posiciones de las lineas te aconsejo que te hagas los script cmd con ditintas situaciones y lo evalues tu mismo, es como se aprende realmente ...

salu2