Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Meine programmen

#101
Scripting / [BATCH] ¿Crear comandos?
8 Junio 2012, 22:30 PM
Bueno, hace no mucho encontre que colocando "X.bat" en la carpeta System32, se podia usar desde la consola o un programa sin necesidad de poner la ruta, solo tecleando "X". Lo he probado con algunos trozos de codigo que repito en la mayoria de mis programas, y tengo un problema, cuando lo uso en un programa, al acabarse de ejecutar el "nuevo comando", el programa se cierra. Es decir, si yo pongo en "Prueba.bat":
@ECHO OFF
echo HOLA
pause
X
echo ADIOS
pause
exit

Al ejecutar Prueba.bat, mostraria HOLA, ejecutaria el "X.bat" que esta en la carpeta System32 y se cerraria sin haber mostrado ADIOS.
Gracias de antemano.
____________________________________________________________________________________________________________________________

MODIFICACION:
Exit /b solo funciona desde la consola de comandos. Ademas, no se conservan las variables que usa el "nuevo comando" que es una parte que me interesa bastante.
___________________________________________________________________________________________________________________________

MODIFICACION:
Para lo de las variables habia pensado crear variables globales que se vayan editando segun los resultados de los programas, pero todavia queda el tema del cierre.
#102
Pues bueno, me preguntaba si hay alguna manera de realizar calculos sexadecimales con batch, por que me cuesta bastante trabajar con datos de tiempo. Gracias
#103
Scripting / Re: [BATCH] Comando WAIT
29 Abril 2012, 22:15 PM
OWNED, OWNED y REOWNED. Y yo que creia haber hecho algo util  :xD Bueno, yo seguire usando el mio y le buscare los errores (Si no, no tendria sentido haber hecho un esfuerzo). El error ese tambien me ha pasado a mi, y deduzco que el error estara en los milisegundos, asi que tendre que poner algun tipo de margen de error (¿Serviria el comodin "?" en la unidad de los milisegundos?)
#104
Scripting / Re: [BATCH] Comando WAIT
29 Abril 2012, 21:55 PM
Encantado. La primera adapta el resultado al formato de la hora (Hora:minuto:segundo,milisegundo). En esa parte tiene un error que se arreglaria con:
IF %TIEMPO1% LEQ 9 (SET TIEMPO1=0%TIEMPO1%)
Y asi con tiempo2, tiempo3 y tiempo4.
La segunda linea sirve para el numero de segundos. %* seria el numero de segundos que hayas puesto (Mucho lio explicar el tema de los argumentos desde una PSP), y exit /b acaba el comando sin cerrar el programa.
#105
Scripting / Re: [BATCH] Comando WAIT
29 Abril 2012, 21:22 PM
No, no debe de coincidir siempre. No se si me explique bien. Lo que hace es medir un segundo usando la hora del sistema. Y respecto a la linea, es totalmente necesaria. Si no le asigno cero a la variable, fallaria el primer segundo, por que le faltaria un operando en la linea:

SET /A CONTADOR=%CONTADOR%+1

Y lo del /A, la verdad, me dio por ahi y no produce ningun error, asi que bueno, se podria quitar, o no.
#106
Scripting / [BATCH] Comando WAIT
29 Abril 2012, 20:56 PM
Pues bueno, hice un comando que espera los segundos que necesites. Tambien se puede usar:
ping localhost -n (Numero de segundos) >nul
Pero ultimamente hice programas que esperan mucho, y al final se me ralentizaba el ordenador, y creo que pasa por que ping envia bits, y usando localhost -n creo que te los envias a ti mismo hasta parar tu ordenador. Aqui esta el codigo, es copiarlo y pegarlo en un bloc de notas y guardarlo como "WAIT.BAT" en "C:\Windows\System32". Despues para usarlo solo es:
call wait (Numero de segundos)
Espero que os sea util. Estoy por solucionar el tema del "call". Si no lo usas asi al acabar de ejcutarse el comando se cierra el programa.
@ECHO OFF
SET CONTADOR=0
SET TIEMPO4=%TIME:~9,2%
:1
SET TIEMPO5=
SET TIEMPO6=
SET TIEMPO7=
SET TIEMPO1=%TIME:~0,2%
IF %TIEMPO1% LEQ 9 (SET TIEMPO1=%TIEMPO1:~1,2%)
SET TIEMPO2=%TIME:~3,2%
IF %TIEMPO2% LEQ 9 (SET TIEMPO2=%TIEMPO2:~1,2%)
SET TIEMPO3=%TIME:~6,2%
IF %TIEMPO3% LEQ 9 (SET TIEMPO3=%TIEMPO3:~1,2%)
IF %TIEMPO3%==59 (SET TIEMPO3=0
GOTO MINUTOS) else SET /A TIEMPO3=%TIEMPO3%+1
GOTO CICLO
:MINUTOS
IF %TIEMPO2%==59 (SET TIEMPO2=0
GOTO HORAS) else SET /A TIEMPO2=%TIEMPO2%+1
GOTO CICLO
:HORAS
IF %TIEMPO1%==23 (SET TIEMPO1==0
GOTO CICLO) else SET /A TIEMPO1=%TIEMPO1%+1
:CICLO
IF %TIEMPO1% LEQ 9 (SET TIEMPO5=0)
IF %TIEMPO2% LEQ 9 (SET TIEMPO6=0)
IF %TIEMPO3% LEQ 9 (SET TIEMPO7=0)
IF %TIME:~6,2% LEQ 9 (SET TIEMPO8=%TIME:~6,1%) else SET TIEMPO8=%TIME:~6,2%
SET /A COMP=%TIEMPO3%-%TIEMPO8%
IF "%COMP%"=="-59" (GOTO 4)
IF %TIEMPO3% LSS %TIEMPO8% (SET /A TIEMPO3=%TIEMPO8%+1)
:4
IF "%TIME%"=="%TIEMPO5%%TIEMPO1%:%TIEMPO6%%TIEMPO2%:%TIEMPO7%%TIEMPO3%,%TIEMPO4%" (GOTO FIN) else GOTO CICLO
:FIN
SET /A CONTADOR=%CONTADOR%+1
IF %CONTADOR%==%* (exit /b) else goto 1

Corregi el codigo, y creo que arregle todos los errores. Ademas, el segundo es exacto, por que usa los milisegundos (Aunque algunos piensen que batch es muy lento y que a veces no llegaria en una comprobacion y a la siguiente se pasaria, yo lo probe en mi ordenador y hace 10 comprobaciones por milisegundo, asi que lo lento sera el ordenador, en todo caso.)
#107
Pues bueno, estoy haciendo un programa que me abra la musica de manera aleatoria y me parece muy molesto estar pulsando enter cada vez que se acaba una cancion, asi que me preguntaba si hay alguna manera de sacar la duracion de una cancion desde batch, en segundos a poder ser, para con ping localhost -n que sea automatico. Gracias
#108
Bueno, es que estoy haciendo un programa que tiene que separar una variable introducida caracter a caracter para que vaya bien. De momento use un bucle con:

¡VARIABLE:~-%CONTADOR%¡

Pero necesito borrar el ultimo caracter cada vez para que se divida. Gracias
PD: Si no me equivoco esto tambien se podria hacer con el bucle FOR, pero no se usarlo, asi que si alguien sabe como me serviria de mas ayuda.
#109
Yo estoy buscando 3 discos de unos muy poco conocidos AnJ, busco Неизданное, With Honor To Life y Russian Roulette. Gracias! ^^
#110
Bueno, de primeras no se siquiera si plantee bien la pregunta, asi que mejor me explico. Estoy intentando hacer en batch un programa que encripte texto plano con el cifrado de Vigenère. Para simplificarlo un poco, es una tabla como esta

Se pone la letra del mensaje en el abecedario de arriba y la letra de la clave en el de la derecha, y donde se crucen una y otra es el resultado. Bueno, el caso es que si a cada letra le asignamos un valor por su posicion, se suman los valores de las dos letras, se le resta 1 y si es mayor que el numero de letras del abecedario se le resta el numero de letas del abecedario. El resultado es el valor de la letra que saldria con el cuadro. El problema esta en que no se como hacer que la clave se adapte al mensaje. Por ejemplo, si el mensaje es "Hola amigo" y la clave "Ghj", la clave se tendria que adaptar al mensaje asi:
HOLA AMIGO
GHJG HJGHJ
Y lo mismo si el mensaje fuera mas corto que la clave. Y ademas de adaptar la clave al mensaje tambien esta que tendria que operar con cada letra por separado. Gracias por adelantado