elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  AYUDA BATCH COMODIN ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA BATCH COMODIN ?  (Leído 5,242 veces)
japarrado

Desconectado Desconectado

Mensajes: 1


Ver Perfil
AYUDA BATCH COMODIN ?
« en: 18 Julio 2013, 22:01 pm »

Buen día amigos, he encontrado excelente información en este foro, por este motivo recurro a ustedes.

Tengo un problema, estoy elaborando un .bat para mover los archivos que cumplan la siguiente característica:
??_T????.sql (dos letras cualesquiera, un raya al piso, seguido de una T y por ultimo 4 letras cualesquiera; la extensión de todos los archivos es .sql)
puedo tener archivos con los siguientes nombres, por ejemplo:

Código:
CP_TOITM.sql
FD_TOPER.sql
FD_TINAC.sql

tengo la siguiente parte de código en el script:

Código
  1. FOR %%a in (??_T????.sql) DO (
  2.  move %%a %v_incidente%\%v_incidente%\SCRIPTS
  3.  @echo @@%%a   >> %v_incidente%\%v_incidente%\SCRIPTS\INSTALADOR.sql
  4. )

el problema que tengo es que ademas de estarme moviendo los archivos con cuatro letras despues de "_T" tambien me mueve archivos como:
Código:
AD_TCLTB_COM.sql
AD_TPLAN_PKY.sql

Los  cuales debo mover después en otra parte del código con:

Código
  1. FOR %%a in (??_COL*.sql) DO (
  2.  @echo @@%%a  >> %v_incidente%\%v_incidente%\SCRIPTS\INSTALADOR.sql
  3.  move %%a %v_incidente%\%v_incidente%\SCRIPTS
  4. )

No he podido limitar el for para que solo me mueva los archivos que necesito.

Como lo podría hacer? que tengo mal?
Muchas gracias por su colaboración, que tengan un excelente día.


« Última modificación: 19 Julio 2013, 12:03 pm por EleKtro H@cker » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: AYUDA BATCH COMODIN ?
« Respuesta #1 en: 19 Julio 2013, 12:09 pm »

@japarrado

Hola,
Usa el botón de insertar código, lee mi firma.





el problema que tengo es que ademas de estarme moviendo los archivos con cuatro letras despues de "_T" tambien me mueve archivos como:

que tengo mal?

No hay ningún problema con dicho FOR, el patrón de búsqueda es correcto y no matchea archivos que tengan más de 4 caracteres después de la "T". El problema está en otra parte del código que no nos has mostrado todavía.

Puedes probar esto, pero es exáctamente lo mismo, y como ya digo tu primer FOR funciona corréctamente:

Código
  1. FOR /F %%a in ('Dir /B /S "??_T????.sql"')  DO (
  2. echo %%a
  3.   rem move %%a %v_incidente%\%v_incidente%\SCRIPTS
  4. rem  @echo @@%%a   >> %v_incidente%\%v_incidente%\SCRIPTS\INSTALADOR.sql
  5. )

Saludos


En línea

Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: AYUDA BATCH COMODIN ?
« Respuesta #2 en: 19 Julio 2013, 13:09 pm »

Puedes probar esto, pero es exáctamente lo mismo, y como ya digo tu primer FOR funciona corréctamente:
Yo probe desde la consola
Código:
FOR %A IN (??_T????.sql) DO (echo %A)
Teniendo dos archivos (HN_TGGGH.sql y HN_TGG_TGH.sql) y me devuelve los dos archivos. Con este codigo en cambio si que me ha devuelto solo el primero:
Código:
setlocal enabledelayedexpansion
FOR %%a in (??_T????.sql) do (set a=%%a
set a=??!a:~2,2!????!a:~8,4!
if !a!==??_T????.sql (echo %%a))
Luego probe tambien tu codigo
Código
  1. FOR /F %%a in ('Dir /B /S "??_T????.sql"')  DO (
  2. echo %%a
  3.   rem move %%a %v_incidente%\%v_incidente%\SCRIPTS
  4. rem  @echo @@%%a   >> %v_incidente%\%v_incidente%\SCRIPTS\INSTALADOR.sql
  5. )
Y me devuelve tambien los dos archivos.
En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: AYUDA BATCH COMODIN ?
« Respuesta #3 en: 19 Julio 2013, 15:41 pm »

@Meine programmen

Lo acabo de testear de la manera en la que has comentado y exáctamente con los dos mismos nombres de archivo,
Sigo reafirmando que el código de @japarrado funciona y no necesita ninguna modificación, al menos bajo Windows 8.

Es óbvio que si ustedes dos dicen que no funciona entonces aquí hay un nuevo problema descubierto, el problema es que en la versión de Windows que estén utilizando hay un bug respecto al keyword: "?".

La solución es actualizar la plataforma de Windows, o seguir las indicaciones del compañero @Meine programmen.

PD: Siento no haber podido ayudar de mejor forma esta vez, era imposible deducir que se trataba de un bug de una versión anterior de Windows, era más fácil asumir que el usuario se habia equivocado al afirmar que NO funcionaba el código.

Un saludo!
« Última modificación: 19 Julio 2013, 15:49 pm por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda cn batch...
Scripting
miguel17x 0 2,165 Último mensaje 3 Septiembre 2006, 03:25 am
por miguel17x
[Ayuda] alguno que sepa programar en batch ayuda...
Scripting
taton 5 3,831 Último mensaje 20 Septiembre 2006, 01:43 am
por taton
[Batch] Ayuda ...
Scripting
taton 1 2,537 Último mensaje 27 Octubre 2006, 16:35 pm
por ne0x
Ayuda batch
Scripting
HackerZ 1 2,492 Último mensaje 26 Noviembre 2006, 19:33 pm
por kanzix
comodin en DLL???(Solucionado) « 1 2 »
Programación Visual Basic
Zeroql 10 3,155 Último mensaje 31 Julio 2008, 23:26 pm
por Zeroql
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines