Como escapar de aspas em arg passado para o programa

0

Então, eu tenho o seguinte problema. Tenho script em lote script.batcom conteúdo a seguir

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

O que obviamente não funciona. No bash, eu escaparia das aspas dentro de aspas para " { value = \"something\" }". Ou até mudou "para '. No entanto, o Windows não possui esse recurso ( 'é apenas um caractere normal). Procurei uma solução e encontrei duas maneiras.

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

No entanto, nenhum deles funciona (nem no arquivo em lotes nem no prompt de comando)

Zereges
fonte
Por que você não usa apenas um script bash?
DavidPostill
@DavidPostill Estou na plataforma Windows.
Zereges 05/03
cygwin.com , mingw.org/wiki/msys e git-for-windows.github.io incluem todos o bash para windows.
DavidPostill

Respostas:

1

A outra citação não (de acordo com Escapando aspas duplas no script em lote ) se aplica ao conteúdo de uma sequência de aspas duplas.

Você pode adicionar aspas duplas por substituição:

set myvalue="something"
cat %* | gawk " { value = %myvalue% } "
Thomas Dickey
fonte
hackish, mas funciona.
Zereges 05/03