¿Podríais probar mi programa y dar feedback?

Llevo 5 meses aproximadamente desarrollando un programa .bat "sencillo" para Windows con diferentes funciones que aunque la gran mayoría se hagan mediante entorno gráfico, alguna vez es muy útil. Lo llevo actualizando semanalmente todos estos meses, solucionando errores y añadiendo contenido.

Simplemente me gustaría que lo probarais y rellenarais un pequeño formulario que habrá en la página en la que subo las actualizaciones. Os dejo el enlace acontinuación:

https://trello.com/b/9ERxiXQZ 

1 respuesta

Respuesta
1

Un trabajo impresionante. No puedo revisar todas las opciones de modo que no puedo aportarte mucho. Pero has currado de lo lindo. Intentaré usarlo cada vez que necesite hacer algo de lo que ofrece tu menú y te diré algo si lo hago.

Un comentario: lo de no permitir nombres de archivos con espacios ¿es qué lo has dejado para más adelante o te has tropezado con algún impedimento en alguna de las opciones? Es cierto que es una complicación, pero...

También me parece muy trabajado el diseño de tu página/blog o como quieras llamarle. Y en este contexto, los problemas de las letras acentuadas en los archivos "IMPORTANTE leer.txt" y "Notas de parche v3.2.txt" ¿son del diseño web o son archivos MSDOS que no se "traducen" correctamente?

¡Muchas Gracias! Me sienta genial que alguien como usted opine tan bien del trabajo que he estado haciendo.

Pues básicamente porque con el conocimiento que tengo sobre este lenguaje no es el suficiente como para saber hacer que lea nombres con espacios. Pero si no recuerdo mal es solo a la hora de abrir archivos o ejecutar programas, por el tema de que si le pongo las comillas ("%...%") después del 'Start', se abre una nueva ventada CMD con el nombre que hayas puesto entre las comillas...

También es cierto que al principio no sabía que para cualquier función menos la de 'Start', si le añades las comillas significa que le puedes poner una cadena de texto. Pero cuando lo supe pude actualizarlo, de hecho lo implemente en la v2.7.

La página donde subo todo es una plataforma que sirve para organizarse mediante tarjetas, muy útil también para invitar a amigos o compañeros para un uso compartido. Lo uso también para organizarme las tareas, examenes, trabajos, etc. de los estudios...

En cuanto a los problemas de los acentos imagino que será de la página, porque eso lo hago a parte del programa, en archivos .txt y luego simplemente los arrastro (adjunto) a la página.

Por ejemplo para que los acentos se vean en el programa, al ser un archivo por lotes, hay que usar códigos ASCII (aunque ya lo sabrás jajaja).

Ya que estamos... ¿Te  importaría decirme cómo aprender más sobre este lenguaje? Porque como podrás comprobar... Sí, he trabajado mucho, pero el "código" es bastante sencillo y me falta muchísimo por aprender, como por ejemplo el so del Set, más variables del 'If', etc etc.

Tengo varias ideas más para mejorar el programa, pero alguna cosa me costará algo implementarlo, por eso no dejo de intentar aprender más, aunque me cuesta encontrar información por ahí...

En cuanto a lo de las comillas es importante saber que si %1 es un parámetro de llamada que puede o no llevar comillas la invocación como %~1 le quitará las comillas.

Si %var% puede tener comillas o no, si pones

set var=%var:"=% le quitará las comillas si las tuviera.

Mi poca experiencia con caracteres acentuados (por referirme de alguna manera a los típicos del español) en páginas web me ha llevado a que suele ser conveniente usar el juego de caracteres UTF-8 pero seguro que tú ya has pasado por ahí.

En cuanto a las fuentes de "inspiración" para la programación batch realmente no tengo una "página de cabecera". La tuve hace años pero desapareció. Tal vez puedan servirte:

http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html 

http://profesoremiliobarco.blogspot.com.es 

Además de, claro, la ayuda de los propios comandos que ofrece el propio sistema operativo (aunque a veces sea bastante críptica). Ya sabes, teclear en una ventana CMD, por ejemplo

IF /?

Pero hay cosas que yo creo que no están documentadas y que llegaron a usarse mucho cuando había un montón de células grises ocupadas en sacarle al batch muchísimo más de lo que habían previsto sus "inventores". Y la shell MSDOS, por llamarla de alguna forma, ha mejorado muchísimo, por ejemplo de Windows98 a Windows 2000. Ni te puedes imaginar el retorcimiento del "diseño" de un bat en Win98 para simplemente añadir al nombre de un archivo la fecha y/o hora actual. ¡Auténtico encaje de bolillos!

Otra maravilla de la ingeniería del batch son los desarrollos de un tal Ritchie Lawrence para cuestiones relacionadas con fechas y horas que pueden obtenerse en http://www.commandline.co.uk/cmdfuncs/dandt/#datetodays.

Por último voy a copiarte aquí algunas cosas que tengo anotadas como "Curiosidades":

El comando echo, lanzado desde un bat, parece comerse algunos caracteres. Por ejemplo !, y no vale ni
duplicarlo ni escaparlo con ^. Otros caracteres hay que duplicarlos (como el % y el propio ^). Algunos
hay que "escaparlos" con ^ (como el |, el > y el <). El propio ^ tiene un comportamiento peculiar. Si
no está presente ! Se puede "escapar" duplicándolo (^^) pero si está presente ! No funciona el escape.
Esto debe tener que ver con que la forma de escapar el ! Es ^^! Pero sin respetar la proximidad.
La combinación !^ En un comando echo "borra" a los efectos del bat lo que aparezca hasta el próximo
!. Esto es algo un poco raro y no sé muy bien el funcionamiento exacto. Podría servir para esconder
la forma de trabajar en un bat. La única forma de sacar ! Mediante un comando echo exige utilizar ^!
Y que, además, haya un " antes de esa combinación, no importa en que posición. Pero claro, eso incluye
en el texto emitido el carácter " que posiblemente estropee el resultado.
Hay que tener cuidado, en ocasiones, con el uso de los caracteres () dentro de un echo si está en el
ámbito del DO de un FOR o en un IF/ELSE. Si hay que escaparlos en esos casos se hará con ^.
Con el paso a las variables de un FOR del carácter ! pasa algo parecido aunque parece bastar que en
el texto origen venga ^! en lugar de !.
Con el echo directo, desde ventana CMD, no hay problemas para el carácter !.
La razón de este extraño comportamiento es el uso del comando "Setlocal EnableDelayedExpansion". Si
no se usa no ocurre, pero eso puede crear otro tipo de complicaciones. En este contexto es bueno
saber que los CALL puede hacer innecesario ese comando, aunque compliquen un poco las cosas.
&& ejecuta el comando que sigue cuando el anterior terminó bien, con errorlevel 0.
|| ejecuta el comando que sigue cuando el anterior terminó mal, con errorlevel 1.

Una de ellas (la que habla de los paréntesis) la incluí después de tratar tu consulta Problema con variables en un programa .bat 

Muchísimas gracias por la información, me será de muchísima ayuda ¡Me encanta la programación!

Ya me he leído casi casi todo lo que aparece de cada variable en "Help" y luego con casos específicos, pero como bien dices, hay muchos los cuales quedan un poco explicados por encima y poco más.

Les echaré un buen vistazo a esos enlaces. Te agradezco un montón el apoyo.

Eso de "EnableDelayedExpansion", ¿Qué es lo que hace?

Pues, a grandes rasgos, hace que el valor de una variable dentro de un bucle se actualice. Y en ese caso en lugar de nombrar a la variable entre %% hay que nombrarla entre !

Deberás hacer alguna prueba para interiorizarlo. Prueba esto:

@echo off
Setlocal EnableDelayedExpansion
set /a var=0
for /l %%n in (1, 1, 10) do (
set /a var+=1
echo variable sin actualizar %var%
Echo variable actualizada !var!
Pause
)

Y, por si no lo has hecho, te recomiendo que le eches un vistazo a

CMD /?

Ya he visto que HELP CMD saca la misma información, por tanto no tiene mucho sentido lo que te he sugerido de CMD /? (es que soy un poco antiguo).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas