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 - ovichan

#61
Scripting / Re: [BATCH] Edición archivo SRT
4 Agosto 2012, 15:42 PM
@Leo Gutiérrez

Está probado y asi realiza su función aunque como dice EleKtro H@cker, se come ciertos caracteres

@EleKtro H@cker

El código que has puesto funciona pero se come el espacio antes de los numeros de la línea por lo que al editar el srt resultante en aegisub, me inserta todos los subtitulos en una sola linea.

Por cierto, mis srt están codificados en Unicode, podría automatizar el cambio a UTF-8??

Gracias de nuevo.
#62
Scripting / Re: [BATCH] Edición archivo SRT
3 Agosto 2012, 23:20 PM
Gracias, lo voy a probar y os cuento, desconocía que pudiera insertar doble comilla dentro de otras comillas, no tengo tanto nivel ^^'.

Con respecto a lo del codigo en vez de quote, me ha kedao claro  :silbar:. No volverá a pasar.

#63
Scripting / [BATCH] Edición archivo SRT
3 Agosto 2012, 20:17 PM
Hola de nuevo, el caso es que necesito editar 291 archivos del tipo srt, que en base es practicamente es lo mismo que un txt, con extension diferente.

Bueno he leido este hilo para poder hacer sustitucion de palabras http://foro.elhacker.net/scripting/acciones_sobre_archivos_de_texto_batch-t242748.0.html. Sin embargo este codigo me da error y no me funciona:

Intento cambiar en el texto los puntos suspensivo con espacios por puntos suspensivos sin espacios.
Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type C:\Users\Isra\Desktop\Cap 01 B.srt') do (
set linea=%%x
set linea=!linea:. . .=...!
call :show !linea!
)
goto:eof
:show
echo %* >> "C:\Users\Isra\Desktop\Cap 01 B mod.srt"
goto:eof


Alguna idea de que está pasando??




Elektro H@cker: No tienes que usar el botón "insertar cita" sinó el de "insertar código".
#64
Scripting / Re: [BATCH] Problemas con else if
14 Julio 2012, 00:40 AM
Cierto cierto es mas sencillo, pero cuesta acomodarse a este lenguaje y sus limitaciones y demás; muxas veces dudo si se pueden hacer ciertas cosas o no. Gracias por el off, le echare un ojo. Saludos cracks

EDITO: Tu forma me iba bien pero en horas de madrugada se seguia comiendo el cero incluso dandole el formato, y se debe a las comillas. Siendo lo correcto para mi caso:

Código (dos) [Seleccionar]
IF %H% LSS 10 (Set H=0%H%)
IF %M% LSS 10 (Set M=0%M%)


Echo El apagado se iniciara a las %h%:%m%:%s%,%ms%.
Goto :Inicio


Para los segundo no hace falta, win los incluye automaticamente O_o
#65
Scripting / Re: [BATCH] Problemas con else if
13 Julio 2012, 20:41 PM
Los he borrado pero sigue sin funcionarme la linea. Sin embargo, he dado con la solucion aunque no es de mi agrado pues queria haberlo hecho con condicionales anidados.

Solucion:
Código (dos) [Seleccionar]

:: Mensaje de salida, en formatos diferentes

IF %h% LSS 10 (IF %m% LSS 10 (echo El apagado se iniciar  a las 0%h%:0%m%:%s%,%ms%. && echo. && goto inicio))
IF %h% GEQ 10 (IF %m% LSS 10 (echo El apagado se iniciar  a las %h%:0%m%:%s%,%ms%.  && echo. && goto inicio))
IF %h% LSS 10 (IF %m% GEQ 10 (echo El apagado se iniciar  a las 0%h%:%m%:%s%,%ms%.  && echo. && goto inicio))

echo El apagado se iniciar  a las %h%:%m%:%s%,%ms%.

echo.
goto inicio


Esta claro que el problema provenia de cuando el programa interpreta las condiciones, al estar anidados ni si quiera valora la tercera condicion saliendo de los condicionales anidados.

Vamos que cuando exponia el caso de que la hora es menor de 10 y los minutos mayor de 10, como interpreta las condiciones anteriores y las valora, se rompia el proceso cuando pasaba por GEQ 10, al no cumplirse se rompia y no saltaba al siguiente ELSE.

Eso creo que es lo que pasaba. Saludos




Moderador: ¿Porque sigues usando en las respuestas el botón "citar" para insertar código?  :-/
#66
Scripting / Re: [BATCH] Problemas con else if
13 Julio 2012, 19:56 PM
Ok, entonces creo que el fallo lo tengo en ciertos parentesis

Código (dos) [Seleccionar]
IF %h% LSS 10 (IF %m% LSS 10 ("echo El apagado se iniciar  a las 0%h%:0%m%:%s%,%ms%.")

) ELSE (

IF %h% GEQ 10 (IF %m% LSS 10 ("echo El apagado se iniciar  a las %h%:0%m%:%s%,%ms%."))

) ELSE (

IF %h% LSS 10 (IF %m% GEQ 10 ("echo El apagado se iniciar  a las 0%h%:%m%:%s%,%ms%."))

) ELSE (

echo "El apagado se iniciar  a las %h%:%m%:%s%,%ms%."

)
)
)


Los he quitado y al menos el script ya no se cierra pero me indica: El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del volumen no son correctos.

Y otra duda, no se puede usar como en C los operadores logicos &&?? Para algo como:

If condicion1 && condicion2 (accion) else (acciondefault)

EDITO: Ahora no me muestra ni el mensaje arrgggggg >:D

EDITO2: He detectado que el error esta marcado en esta linea: IF %h% LSS 10 (IF %m% GEQ 10 ("echo El apagado se iniciar  a las 0%h%:%m%:%s%,%ms%.")

Pero no se pq
#67
Scripting / Re: [BAT] Duda con FOR
13 Julio 2012, 19:37 PM
Si, habia leido que utilizando solo un &, la lectura se interrumpe hasta que se deja de cumplir la condicion (o algo asi) y con && lee toda la linea. La verdad es que no habia caido en que ante errores es mejor usar la opcion que tu marcas. Saludos y gracias  ;-)
#68
Scripting / [BATCH] Problemas con else if
13 Julio 2012, 19:35 PM
Buenas, se que en este lenguaje no existe la particula propiamente dicha, ELSE IF sino que hay que hacer otra cosa. He estado mirando por la web y la solucion seria anidar los condicionales pero desgraciadamente no me sale  :-(

Os dejo el código, y marco de negro la zona conflictiva. A ver en que me estoy equivocando.

Código (dos) [Seleccionar]
@echo off
color 0A
title Apagado condicional

:inicio
echo ¨Qu, quieres hacer?
echo.
echo 1. Apagar en un tiempo espec¡fico
echo 2. Apagar
echo 3. Reiniciar
echo 4. Cerrar sesion
echo 5. Hibernar
echo 6. Cancelar
echo.
echo 7. Quitar
echo.

set /p eleccion="Elija una opci¢n: "
if %eleccion%==1 goto apagado
if %eleccion%==2 shutdown -s -f
if %eleccion%==3 shutdown -r -f
if %eleccion%==4 shutdown -l -f
if %eleccion%==5 shutdown -h -f
if %eleccion%==6 goto cancelar
if %eleccion%==7 exit
echo Elecci¢n inv lida: %eleccion%
echo.
pause
cls
goto inicio

:apagado
cls
set /p min="Minutos antes de apagar: "
set /a sec=60*%min%
shutdown -s -f -t %sec%
cls

:: Opcion con extractor de caracteres
rem set h=%time:~0,2%
rem set m=%time:~3,2%
rem set s=%time:~6,2%
rem set ms=%time:~9,2%

:: Opcion con bucle

for /F "tokens=1,2,3,4 delims=:," %%H in ("%time%") do set "h=%%H" & set "m=%%I" & set "s=%%J" & set "ms=%%K"

:: Suma de los minutos insertados a la hora actual, para ser mostrada en la interfaz
set /a m=%m%+%min%

:: Reajustar horas y minutos
if %m% GEQ 60 set /a h=%h%+(%m%/60) && set /a m=(%m%)%%60
if %h% GEQ 24 set /a h=(%h%)%%24


Esta es la parte que no funciona:
Código (dos) [Seleccionar]
:: Mensaje de salida, en formatos diferentes

IF %h% LSS 10 (IF %m% LSS 10 ("echo El apagado se iniciar  a las 0%h%:0%m%:%s%,%ms%.")

) ELSE (

IF %h% GEQ 10 (IF %m% LSS 10 ("echo El apagado se iniciar  a las %h%:0%m%:%s%,%ms%."))

) ELSE (

IF %h% LSS 10 (IF %m% GEQ 10 ("echo El apagado se iniciar  a las 0%h%:%m%:%s%,%ms%."))

) ELSE (

echo "El apagado se iniciar  a las %h%:%m%:%s%,%ms%."

)
)
)

echo.
goto inicio

:cancelar
cls
shutdown -a
pause
cls
goto inicio




Saludos y gracias de antemano.
#69
Scripting / Re: [BAT] Duda con FOR
12 Julio 2012, 17:49 PM
Gracias por tu respuesta, no pensaba yo que seria por eso... este lenguaje es muy meticuloso en ciertos aspectos, x eso me gusta tanto \O/.

Saludos
#70
Scripting / [BAT] Duda con FOR
12 Julio 2012, 05:24 AM
Bueno estoy ajustando un script que tenía para que el apagado se realice a una hora, y queria que en la pantalla mostrase la hora en la que se iniciara el apagado. Como no se si se puede operar con horas, lo que he intentado es extraer los caracteres de la variable %time% para sumarle a cada un token su correspondiente valor. El caso es que con for, me incluye un espacio que intento quitar pero no puedo. He realizado el mismo proceso y con exito con los extractores de caracteres, pero queria probar con el FOR. Os pongo la trivialidad del codigo.

@echo off
set /p min="Minutos antes de apagar: "
set /a sec=60*%min%

:: Opcion con extractores de caracteres

rem set h=%time:~0,2%
rem set m=%time:~3,2%
rem set s=%time:~6,2%
rem set ms=%time:~9,2%

:: Opcion con un bucle

for /F "tokens=1,2,3,4 delims=:," %%H in ("%time%") do set h=%%H && set m=%%I && set s=%%J && set ms=%%K

rem set /a m=%m%+%min%

rem IF - if %m% GEQ 60 set /a h=%h%+(%m%/60) && set /a m=(%m%)%%60

echo %h%:%m%:%s%,%ms%

pause


la salida seria: 11 :12 :23 ,70. Y desearia saber como podria hacer que extraiga los valores sin los espacios para que se muestre asi: 11:12:23,70.

Imagino que es una boberia pero es una curiosidad mas. ^^