Como faço para escapar da string \" para linha de comando no Windows?

Como faço para escapar da string \" para linha de comando no Windows?

Para um script que compila LaTeX para mim, tenho que enviar a string \"para a linha de comando, dentro de uma string delimitada por ". Exemplo:

>pdflatex "\IeC{\" o}"

Como faço para escapar do "meio? Se eu fizer isso pdflatex "\IeC{\\" o}", o "\" significará a \e a string ainda terminará no meio ". Alguma maneira de contornar isso?

Esclarecimento:A string literal que desejo enviar para o pdflatex é \IeC{\"o}. Após qualquer escape, é isso que deve ser passado como argumento de linha de comando.

Responder1

\\\"

Para escapar do primeiro caractere, é\\

Para escapar do segundo caractere, é\"

Então, basta colá-los.\\\"

Então, resumindo a história,\\IeC{\\\"o}

Nunca usei o pdflatex antes, mas é assim que os escapes normalmente funcionam.

... a menos que { e } precisem de escapes também

Responder2

Use um quilate como caractere de escape:

pdflatex "\IeC{^" o}"

Editar:

Tente omitir as aspas externas:

pdflatex \IeC{\" o}

Uma coisa a lembrar é que o Windows não processa argumentos de linha de comando da mesma forma que um shell Linux/Unix. Os argumentos são passados ​​intactos (incluindo aspas externas) para o programa que deve decidir como deseja processá-los. Então você pode precisar escapar do espaço. Tudo depende de como o pdflatex vê os argumentos.

Responder3

Você também precisa escapar das barras invertidas:

pdflatex "^\IeC{^\^" o}"

... mas não tenho certeza se os sinais de intercalação significam alguma coisa para o LaTeX, o que acho que provavelmente significam.

Alternativamente, você poderia tentar usar aspas duplas para conter todo o parâmetro, mas duvido que funcionem.

O que certamente funcionaria seria modificar seu script pdflatex para concatenar os parâmetros %1 e %2 (até %n se necessário) que você pode passar para o script sem aspas.

informação relacionada