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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (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 4,990 veces)
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


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

hola...
En una carpeta tengo este archivo:

South Blast! 'Electric Carnival' Remix.mp3


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

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 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


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

Código
  1. @echo off
  2. for /f "tokens=*" %%_ in ('dir /b *.mp3') do (
  3. call:show "%%_"
  4. goto:eof
  5. )
  6. :show
  7. echo %~1
  8. goto:eof
  9.  


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


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

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
  1. for /f "tokens=*" %%_ in ('dir /b *.m4a') do (
  2. echo %%a
  3. )
  4.  
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
  1. dir /B *.m4a >nul 2>&1
  2. IF %ERRORLEVEL% EQU 0 (
  3. call :FIND_M4A
  4. )
  5.  
  6. :FIND_M4A
  7. for /f "tokens=*" %%a in ('dir /B *.m4a') do (
  8. cls
  9. echo %%a
  10. set /a num+=1
  11. Colous writesec "[7]Convirtiendo el audio:" & echo+
  12. Call :Rename_M4A
  13. Etc...
  14. )
  15.  

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 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


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

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 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


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

Creo que puedes usar endlocal.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[solucionado][batch]problema con ó y á
Scripting
z_ane_666 6 8,138 Último mensaje 3 Enero 2011, 23:26 pm
por klaine
¿Firmware especial para este router zyxel?
Redes
ABDERRAMAH 2 3,784 Último mensaje 25 Febrero 2013, 09:35 am
por ABDERRAMAH
Indicar al Batch que el caracter no se usara como modificador
Scripting
Btcsk 2 4,872 Último mensaje 27 Mayo 2013, 20:24 pm
por Btcsk
Duda sobre el layout de los keyboards y un caracter especial...
Programación General
Eleкtro 2 2,924 Último mensaje 5 Septiembre 2013, 06:54 am
por Eleкtro
¿Con qué carácter especial detengo un vector?
Programación C/C++
estudianteuv 4 1,547 Último mensaje 25 Mayo 2018, 00:09 am
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines