Cómo escapar de comillas en argumentos pasados ​​al programa

0

Entonces tengo el siguiente problema. Tengo un script por lotes que script.battiene el siguiente contenido

cat %* | gawk " { value = "something" } "

Lo que obviamente no funciona. En bash, escaparía de las comillas dentro de comillas a " { value = \"something\" }". O incluso cambiado "a '. Sin embargo, Windows no tiene esa característica ( 'es solo un carácter normal). Busqué una solución y encontré dos formas.

cat %* | gawk " { value = ^"something^" } "
cat %* | gawk " { value = ""something"" } "

Sin embargo, ninguno de estos trabajos (ni en el archivo por lotes ni en el símbolo del sistema)

Zereges
fuente
¿Por qué no solo usas un script bash?
DavidPostill
@DavidPostill Estoy en la plataforma de Windows.
Zereges
cygwin.com , mingw.org/wiki/msys y git-for-windows.github.io incluyen bash para windows.
DavidPostill

Respuestas:

1

La otra cita no se aplica (según Escaping Double Quotes in Batch Script ) al contenido de una cadena entre comillas dobles.

Puede agregar comillas dobles por sustitución:

set myvalue="something"
cat %* | gawk " { value = %myvalue% } "
Thomas Dickey
fuente
hackear, pero funciona.
Zereges