[Batch] ¿Como se podría hacer esto...?

Iniciado por SuperDraco, 5 Abril 2011, 17:46 PM

0 Miembros y 1 Visitante están viendo este tema.

SuperDraco

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 (dos) [Seleccionar]
set exclamacion=!hola!
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 (dos) [Seleccionar]
setlocal disabledelayedexpansion
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
No he vuelto, solo estoy de paso.

djjss

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:!=#%

Eleкtro

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 (dos) [Seleccionar]
Código

Saludos!