Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: SuperDraco en 5 Abril 2011, 17:46 pm



Título: [Batch] ¿Como se podría hacer esto...?
Publicado por: SuperDraco en 5 Abril 2011, 17:46 pm
Existe alguna manera, algún comando, para decirle a un batch... querido batch, si encuentras cualquier argumento o cualquier cosa que contenga el caracter ! (Signo de exclamación) cambialo por dos !! y sigue...

Pero atencion, yo no me refiero por ejemplo a esto:
Código
  1. set exclamacion=!hola!
  2. echo %exclamacion:!=!!%

...No se si me explico, tengo un script que usa setlocal enabledelayedexpansion el script es muy largo, hago muchos "Dir /B" por ejemplo, muchos "FOR"... hay muchos Calls, y en cada una de esas partes el script puede pasar muchos archivos argumentos que contengan el caracter !, y claro, al estar setlocal activado no lo va a reconocer, y además con esos archivos el script hace muchas cosas más...

Me gustaría no tener que llenar el script con muchos:
Código
  1. setlocal disabledelayedexpansion
  2. setlocal enabledelayedexpansion

Lo que intento preguntar es, existe alguna alternativa cómoda? como al principio del script decirle eso, que si encuentra cualquier cosa dentro de todos los comandos que se ejecutan a lo largo del script que contenga un signo de exclamacion, que lo cambie por dos?... :S


Título: Re: [Batch] ¿Como se podría hacer esto...?
Publicado por: djjss en 10 Julio 2013, 10:00 am
No entiendo exactamente lo que deseas hacer pero bueno...

Si quieres coger todo lo q tenga 1 caracter y anadirle otro mas, puedes hacer esto:

Set var=!hola!
Ser var=%var:!=!!%

Por ahora es lo q te puedo decir, algo similar a lo que escribistes ahi, pero como no entendi muy bien lo q kieres no pude decir otra cosa... Copia el codigo y explica la parte donde tienes la duda.

Puedes hacer tmb esto:

Set var=!hola!
Ser var=%var:!=#%


Título: Re: [Batch] ¿Como se podría hacer esto...?
Publicado por: Eleкtro en 10 Julio 2013, 10:11 am
Fijense en la fecha del post antes de comentar.

Porfavor no revivan temas de hace 2 años :P ...y posteen corréctamente un código.

Código
  1. Código

Saludos!