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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Personalizar Batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: Personalizar Batch  (Leído 17,755 veces)
Pédrin-2

Desconectado Desconectado

Mensajes: 171



Ver Perfil
Re: Personalizar Batch
« Respuesta #10 en: 19 Septiembre 2013, 00:42 am »

Hola EleKtro H@cker.
lamento que te tenga que molestar tanto, no se que vas ha hacer conmigo, estoy saturado de hacer pruebas y no consigo nada.
no consigo que lo que sale en pantalla ( los nombres con la primera letra en mayuscula se copien en la carpeta ) he probado de todo.
Me he atascado con esto y no puedo mas
te pongo el codigo a ver que se puede hacer:

Código:
@Echo OFF
set/p nombre="Nombre de Cliente:"
set nombre=%nombre%

set guion=-
for /f "tokens=1,2,3,4,5 delims=/" %%i in ('date /t') do (
set ano=%%k
set dia=%%i
set mes=%%j
Set ToWordCase=%Alphabet%
set nombre=%nombre%)
set cadena=%ano%%guion%%mes%%guion%%dia% %ToWordCase%%nombre%
set directorio=%1

rem copy "%:ToWordCase%" "%cadena%"
Setlocal EnableDelayedExpansion
 Call :ToWordCase "%nombre%"
 Echo+
Pause&Exit
 :ToWordCase
Set "Alphabet=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 For %%# in (%~1) do (
Set "Word=%%#"
Set "Char=!Word:~0,1!"
If "!Char!" EQU "a" (Set "X=%Alphabet:~0,1%")
If "!Char!" EQU "b" (Set "X=%Alphabet:~1,1%")
If "!Char!" EQU "c" (Set "X=%Alphabet:~2,1%")
If "!Char!" EQU "d" (Set "X=%Alphabet:~3,1%")
If "!Char!" EQU "e" (Set "X=%Alphabet:~4,1%")
If "!Char!" EQU "f" (Set "X=%Alphabet:~5,1%")
If "!Char!" EQU "g" (Set "X=%Alphabet:~6,1%")
If "!Char!" EQU "h" (Set "X=%Alphabet:~7,1%")
If "!Char!" EQU "i" (Set "X=%Alphabet:~8,1%")
If "!Char!" EQU "j" (Set "X=%Alphabet:~9,1%")
If "!Char!" EQU "k" (Set "X=%Alphabet:~10,1%")
If "!Char!" EQU "l" (Set "X=%Alphabet:~11,1%")
If "!Char!" EQU "m" (Set "X=%Alphabet:~12,1%")
If "!Char!" EQU "n" (Set "X=%Alphabet:~13,1%")
If "!Char!" EQU "o" (Set "X=%Alphabet:~14,1%")
If "!Char!" EQU "p" (Set "X=%Alphabet:~15,1%")
If "!Char!" EQU "q" (Set "X=%Alphabet:~16,1%")
If "!Char!" EQU "r" (Set "X=%Alphabet:~17,1%")
If "!Char!" EQU "s" (Set "X=%Alphabet:~18,1%")
If "!Char!" EQU "t" (Set "X=%Alphabet:~19,1%")
If "!Char!" EQU "u" (Set "X=%Alphabet:~20,1%")
If "!Char!" EQU "v" (Set "X=%Alphabet:~21,1%")
If "!Char!" EQU "w" (Set "X=%Alphabet:~22,1%")
If "!Char!" EQU "x" (Set "X=%Alphabet:~23,1%")
If "!Char!" EQU "y" (Set "X=%Alphabet:~24,1%")
If "!Char!" EQU "z" (Set "X=%Alphabet:~25,1%")
< Nul Call Set /P "=!X!!Word:~1! "

)

start cmd.exe /c "CD %directorio% && Md """%cadena%""""





Por favor Paciencia con un novato

Un saludo


En línea

Pido disculpas por las pifias que pueda decir. el unico fin es ayudar y aprender.
        Un Saludo
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Personalizar Batch
« Respuesta #11 en: 19 Septiembre 2013, 01:13 am »

Hombre pues claro... si copias el código sin más es obvio que no te va a funcionar, debes ajustarlo a tus necesidades.

Sin examinar detalládamente el code, para empezar el code que te puse no almacena el resultado en ninguna variable, imprime el output diréctamente.
Creo que no debería ser necesario una explicación sobre como deberías modificarlo, pero bueno:
Código:
Set "Words=!Words!!X!!Word:~1! "
(Dentro de la subrutina)

Citar
Código:
Set ToWordCase=%Alphabet%
Ahí no le estás asignando ningún valor, porque no hay ninguna variable que se llame "alphabet" fuera de la subrutina :ToWordCase.

Citar
Código:
set cadena=%ano%%guion%%mes%%guion%%dia% %ToWordCase%%nombre%
towordcase está vacia porque alphabet tambien está vacia.

Código:
Setlocal EnableDelayedExpansion
Esa orden deberías ponerla al principio del script junto al "@Echo OFF".

saludos


« Última modificación: 19 Septiembre 2013, 01:15 am por EleKtro H@cker » En línea



Pédrin-2

Desconectado Desconectado

Mensajes: 171



Ver Perfil
Re: Personalizar Batch
« Respuesta #12 en: 19 Septiembre 2013, 01:29 am »

Por favor no te enfades que tu este tema lo tienes mas que ....
Mañana pruebo lo que me comentas y te digo  ( espero que ya haya resuelto el problema).
Ya es muy tarde.

Un saludo y gracias por tu tiempo
En línea

Pido disculpas por las pifias que pueda decir. el unico fin es ayudar y aprender.
        Un Saludo
Pédrin-2

Desconectado Desconectado

Mensajes: 171



Ver Perfil
Re: Personalizar Batch
« Respuesta #13 en: 20 Septiembre 2013, 01:19 am »

Me rindo
tiro la toalla
 :-[  >:D
En línea

Pido disculpas por las pifias que pueda decir. el unico fin es ayudar y aprender.
        Un Saludo
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Personalizar Batch
« Respuesta #14 en: 20 Septiembre 2013, 05:34 am »

Me rindo
tiro la toalla
 :-[  >:D

no te rindas, muestra lo que llevas hecho
En línea



Pédrin-2

Desconectado Desconectado

Mensajes: 171



Ver Perfil
Re: Personalizar Batch
« Respuesta #15 en: 20 Septiembre 2013, 11:14 am »

Gracias por ayudarme

a parte de hacer pruebas, y buscar informacion de almacenar el resultado en variables
y no se como adptarlo a mi batch

Código:
@Echo OFF
 rem Esa orden deberías ponerla al principio del script junto al "@Echo OFF". ( en vez de junto la pongo debajo para que funcione )

Setlocal EnableDelayedExpansion
set/p nombre="Nombre de Cliente:"
set nombre=%nombre%

set guion=-
for /f "tokens=1,2,3,4,5 delims=/" %%i in ('date /t') do (
set ano=%%k
set dia=%%i
set mes=%%j
rem Set ToWordCase=%words%
Set ToWordCase=%Alphabet%
Set Alphabet=%Words%
set nombre=%nombre%

rem (Dentro de la subrutina)
Set "Words=!Words!!X!!Word:~1! ")    
rem set cadena=%ano%%guion%%mes%%guion%%dia% %ToWordCase%%nombre%
set cadena=%ano%%guion%%mes%%guion%%dia% %Alphabet%%nombre%
rem set cadena=%ano%%guion%%mes%%guion%%dia% %Words%%nombre%
set directorio=%1


 Call :ToWordCase "%nombre%"
 Echo+
rem Pause&Exit
 :ToWordCase
Set "Alphabet=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 For %%# in (%~1) do (
Set "Word=%%#"
Set "Char=!Word:~0,1!"
If "!Char!" EQU "a" (Set "X=%Alphabet:~0,1%")
If "!Char!" EQU "b" (Set "X=%Alphabet:~1,1%")
If "!Char!" EQU "c" (Set "X=%Alphabet:~2,1%")
If "!Char!" EQU "d" (Set "X=%Alphabet:~3,1%")
If "!Char!" EQU "e" (Set "X=%Alphabet:~4,1%")
If "!Char!" EQU "f" (Set "X=%Alphabet:~5,1%")
If "!Char!" EQU "g" (Set "X=%Alphabet:~6,1%")
If "!Char!" EQU "h" (Set "X=%Alphabet:~7,1%")
If "!Char!" EQU "i" (Set "X=%Alphabet:~8,1%")
If "!Char!" EQU "j" (Set "X=%Alphabet:~9,1%")
If "!Char!" EQU "k" (Set "X=%Alphabet:~10,1%")
If "!Char!" EQU "l" (Set "X=%Alphabet:~11,1%")
If "!Char!" EQU "m" (Set "X=%Alphabet:~12,1%")
If "!Char!" EQU "n" (Set "X=%Alphabet:~13,1%")
If "!Char!" EQU "o" (Set "X=%Alphabet:~14,1%")
If "!Char!" EQU "p" (Set "X=%Alphabet:~15,1%")
If "!Char!" EQU "q" (Set "X=%Alphabet:~16,1%")
If "!Char!" EQU "r" (Set "X=%Alphabet:~17,1%")
If "!Char!" EQU "s" (Set "X=%Alphabet:~18,1%")
If "!Char!" EQU "t" (Set "X=%Alphabet:~19,1%")
If "!Char!" EQU "u" (Set "X=%Alphabet:~20,1%")
If "!Char!" EQU "v" (Set "X=%Alphabet:~21,1%")
If "!Char!" EQU "w" (Set "X=%Alphabet:~22,1%")
If "!Char!" EQU "x" (Set "X=%Alphabet:~23,1%")
If "!Char!" EQU "y" (Set "X=%Alphabet:~24,1%")
If "!Char!" EQU "z" (Set "X=%Alphabet:~25,1%")
< Nul Call Set /P "=!X!!Word:~1! "

)

start cmd.exe /c "CD %directorio% && Md """%cadena%""""


Un Saludo

PD  No te rias de lo malo que soy, me parezco al niño que le estan enseñando a caminar  y la verdad que es bastante frustante
En línea

Pido disculpas por las pifias que pueda decir. el unico fin es ayudar y aprender.
        Un Saludo
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Personalizar Batch
« Respuesta #16 en: 20 Septiembre 2013, 12:25 pm »

Ay señor... No me rio, todos hemos sido novatos, pero es que tienes que leer un poco sobre el lenguaje y practicarlo unas cuantas veces antes de ponerte a hacer códigos sin saber.


Código
  1. @Echo OFF & Setlocal EnableDelayedExpansion
  2.  
  3. Set "DirPath=%*"
  4. If "%DirPath:~-1%" EQU "\" (Set "DirPath=%DirPath:~0,-1%")
  5.  
  6. Set /P "Name=Nombre de Cliente:"
  7. Call :ToWordCase "%Name%"
  8.  
  9. Set "FullPath=%DirPath%\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%%WordCaseName%"
  10.  
  11. MKDIR "%FullPath%" && (Explorer "%FullPath%")
  12.  
  13. Pause&Exit
  14.  
  15. :ToWordCase
  16. Set "Alphabet=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  17. For %%# in (%~1) do (
  18. Set "Word=%%#"
  19. Set "Char=!Word:~0,1!"
  20. If "!Char!" EQU "a" (Set "X=%Alphabet:~0,1%")
  21. If "!Char!" EQU "b" (Set "X=%Alphabet:~1,1%")
  22. If "!Char!" EQU "c" (Set "X=%Alphabet:~2,1%")
  23. If "!Char!" EQU "d" (Set "X=%Alphabet:~3,1%")
  24. If "!Char!" EQU "e" (Set "X=%Alphabet:~4,1%")
  25. If "!Char!" EQU "f" (Set "X=%Alphabet:~5,1%")
  26. If "!Char!" EQU "g" (Set "X=%Alphabet:~6,1%")
  27. If "!Char!" EQU "h" (Set "X=%Alphabet:~7,1%")
  28. If "!Char!" EQU "i" (Set "X=%Alphabet:~8,1%")
  29. If "!Char!" EQU "j" (Set "X=%Alphabet:~9,1%")
  30. If "!Char!" EQU "k" (Set "X=%Alphabet:~10,1%")
  31. If "!Char!" EQU "l" (Set "X=%Alphabet:~11,1%")
  32. If "!Char!" EQU "m" (Set "X=%Alphabet:~12,1%")
  33. If "!Char!" EQU "n" (Set "X=%Alphabet:~13,1%")
  34. If "!Char!" EQU "o" (Set "X=%Alphabet:~14,1%")
  35. If "!Char!" EQU "p" (Set "X=%Alphabet:~15,1%")
  36. If "!Char!" EQU "q" (Set "X=%Alphabet:~16,1%")
  37. If "!Char!" EQU "r" (Set "X=%Alphabet:~17,1%")
  38. If "!Char!" EQU "s" (Set "X=%Alphabet:~18,1%")
  39. If "!Char!" EQU "t" (Set "X=%Alphabet:~19,1%")
  40. If "!Char!" EQU "u" (Set "X=%Alphabet:~20,1%")
  41. If "!Char!" EQU "v" (Set "X=%Alphabet:~21,1%")
  42. If "!Char!" EQU "w" (Set "X=%Alphabet:~22,1%")
  43. If "!Char!" EQU "x" (Set "X=%Alphabet:~23,1%")
  44. If "!Char!" EQU "y" (Set "X=%Alphabet:~24,1%")
  45. If "!Char!" EQU "z" (Set "X=%Alphabet:~25,1%")
  46. Set "WordCaseName=!WordCaseName! !X!!Word:~1!"
  47. )


Saludos!
« Última modificación: 20 Septiembre 2013, 12:28 pm por EleKtro H@cker » En línea



Pédrin-2

Desconectado Desconectado

Mensajes: 171



Ver Perfil
Re: Personalizar Batch
« Respuesta #17 en: 20 Septiembre 2013, 16:56 pm »

Hola EleKtro H@cker
hay algo que no funciona porque no me deja escribir el nombre ( no hace la pausa), ni me crea la carpeta
lo que ve es que en el codigo que has puesto el Setlocal lo tienes del mismo color que ejem, Echo sin en cambio en mi notepad ++ no sale de color azul, sale negro.

sabes que puede pasar ??

Un saludo
En línea

Pido disculpas por las pifias que pueda decir. el unico fin es ayudar y aprender.
        Un Saludo
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Personalizar Batch
« Respuesta #18 en: 20 Septiembre 2013, 17:40 pm »

Vamos por partes,

El código es 100% funcional, no uses Notepad++, abre el Bloc de notas, pega el código, y guárdalo con codificación ANSI.

Si te sigue sin funcionar, comenta el modo en el que lo estás intentando usar.

EDITO:
Dime una cosa... ¿No será que tu estás intentando abrir diréctamente el script haciendo click en el archivo?,
Lo comento porque el script debe recibir un argumento espeficando una ruta, como en todos los códigos que has mostrado hasta ahora...


lo que ve es que en el codigo que has puesto el Setlocal lo tienes del mismo color que ejem, Echo sin en cambio en mi notepad ++ no sale de color azul, sale negro.

sabes que puede pasar ??

-.-

Ains, no te preocupes por eso... el término es "Syntax Highlighting", tanto este foro SMF como esos editores de texto usan plugins para resaltar la sintaxis de los lenguajes de programación,
ves del mismo color "Echo" y "SetLocal" porque son dos Keywords así que se resaltan en el mismo color, si tu editor de texto no resalta "SetLocal" entonces el plugin que usan para Batch es una basura, aunque el plugin GeShi de este foro tiene otros errores mucho más graves que ya comenté en otro post pero nadie me hizo ni caso.

PD: Te recomiendo Sublime Text 3.0 + Plugins de terceros.

Saludos
« Última modificación: 20 Septiembre 2013, 17:45 pm por EleKtro H@cker » En línea



Pédrin-2

Desconectado Desconectado

Mensajes: 171



Ver Perfil
Re: Personalizar Batch
« Respuesta #19 en: 20 Septiembre 2013, 18:51 pm »


EDITO:
Dime una cosa... ¿No será que tu estás intentando abrir diréctamente el script haciendo click en el archivo?,
Lo comento porque el script debe recibir un argumento espeficando una ruta, como en todos los códigos que has mostrado hasta ahora...

-.-

Saludos

Pues si es lo que hago click en el archivo como siempre
 :rolleyes:   entonces como lo hago???
En línea

Pido disculpas por las pifias que pueda decir. el unico fin es ayudar y aprender.
        Un Saludo
Páginas: 1 [2] 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Personalizar aplicacion
Programación Visual Basic
bautistasbr 3 1,522 Último mensaje 30 Agosto 2006, 21:38 pm
por NYlOn
Personalizar error
Programación Visual Basic
dimitrix 1 1,551 Último mensaje 22 Enero 2007, 01:18 am
por Syphroot
personalizar datagrid vb6.0
Programación Visual Basic
choquito 2 7,078 Último mensaje 2 Abril 2007, 17:41 pm
por choquito
Personalizar DVD
Multimedia
Sri 0 2,057 Último mensaje 23 Diciembre 2007, 19:19 pm
por Sri
[Batch] Insertar un batch dentro de un batch que fabrique un .txt
Scripting
$pedrojo2704 2 6,337 Último mensaje 23 Agosto 2012, 10:08 am
por $pedrojo2704
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines