elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 05:21  


Tema destacado: ¡Aprende hacking con práctica! - WarZone, el wargame de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  (Solucionado) [Batch] Problema con este caracter especial: !
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Solucionado) [Batch] Problema con este caracter especial: !  (Leído 1,499 veces)
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
(Solucionado) [Batch] Problema con este caracter especial: !
« en: 1 Abril 2011, 08:47 »

hola...
En una carpeta tengo este archivo:

South Blast! 'Electric Carnival' Remix.mp3


y ejecuto este código:
Código
for /f "tokens=*" %%a in ('dir /B *.mp3') do (
set nombre=%%a
echo !nombre!
pause
)

El resultado de echo es esto:
Código:
South Blast 'Electric Carnival' Remix.mp3

Necesito que me reconozca el signo de exclamación !

¿Como lo hago?


« Última modificación: 5 Abril 2011, 17:26 por pitoloko » En línea

pa que
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: [Batch] Problema con este caracter especial: !
« Respuesta #1 en: 1 Abril 2011, 15:39 »

Código
@echo off
for /f "tokens=*" %%_ in ('dir /b *.mp3') do (
call:show "%%_"
goto:eof
)
:show
echo %~1
goto:eof
 


En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: [Batch] Problema con este caracter especial: !
« Respuesta #2 en: 5 Abril 2011, 16:52 »

Tu código funciona, pero no cuando yo quiero :/


me explico, si creo un archivo .bat con tu código, lo pruebo y funciona, funciona incluso sin el call... osea, el call :show no hace falta se muestra el ! sin necesidad del call

Código
for /f "tokens=*" %%_ in ('dir /b *.m4a') do (
echo %%a
pause
)
 
ese code me muestra el archivo .m4a con el caracter !



Ahora bien, en esta parte de un script mio no me muestra el caracter, cual es la diferencia??? donde está el problema???

Código
dir /B *.m4a >nul 2>&1
IF %ERRORLEVEL% EQU 0 (
call :FIND_M4A
)
 
:FIND_M4A
for /f "tokens=*" %%a in ('dir /B *.m4a') do (
cls
echo %%a
pause
set /a num+=1
echo+
Colous writesec "[7]Convirtiendo el audio:" & echo+
Call :Rename_M4A
Etc...
)
 

EDITO: El script tiene setlocal enabledelayedexpansion (por si pudiera ser la cause del problema :/)

He intentado aplicar tu función la del call :show, pero no se como hacerlo en esa parte de mi script, porque lo que quiero no es mostrarla con echo %~1, sino que el FOR coja bien el nombre del archivo m4a con el signo de exclamacion, para proseguir con el resto del batch... no se si me explico :S



EDITO 2: Definitivamente creo que el problema lo cause el setlocal             enabledelayed, porque si lo quito del script funciona correctamente xD

claro..debe ser eso por los signos de exclamacion, que tonto estoy.

lo doy por solucionado.
« Última modificación: 5 Abril 2011, 17:08 por pitoloko » En línea

pa que
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: (Solucionado) [Batch] Problema con este caracter especial: !
« Respuesta #3 en: 5 Abril 2011, 17:05 »

Tengo una pregunta más.

Puedo desactivar delayedexpansion dentro de ese call, para que el FOR coja el nombre bien, y despues de eso volverlo a activarlo enseguida?

quiero decir, es tan facil como hacer esto asi?

Código:
Setlocal enabledelayedexpansion
FOR in dir .m4 blablabla....
Setlocal disabledelayedexpansion
echo %%a
Setlocal enabledelayedexpansion
goto:...
etc...

Ya me contesto a mi mismo: Si, se puede!

Solucionado  :xD gracias Leo
« Última modificación: 5 Abril 2011, 17:26 por pitoloko » En línea

pa que
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: (Solucionado) [Batch] Problema con este caracter especial: !
« Respuesta #4 en: 5 Abril 2011, 22:39 »

Creo que puedes usar endlocal.
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines