Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Contra barra no document.write

Olá pessoal, eu sou contador e todos os meses preciso criar uma lista de pastas para arquivos aqui do escritório. Geralmente eu fazia isso com um arquivo .bat onde eu tenho que modificar quase todas as linhas manualmente para que ele funcione, já que várias empresas mudam e eu preciso criar várias pastas dentro de pastas numa ordem. Um trabalho bem extenso e demorado, e que muitas vezes está sujeito a erros.

Terminei o curso de lógica de progamação I e estou tentando fazer com que o script monte para mim o texto do arquivo .bat. Sei que no futuro, nos próximos cursos eu aprenderei outras formas de fazer esse arquivo diretamente no programa, mas foi uma forma que eu achei de resolver um problema próprio usando os conhecimentos adquiridos ao longo do curso.

Pois bem. Eu criei o programa, ele faz o que deveria fazer, exceto pelo fato de não exibir a contrabarra "" no document.write. Tentei com o alert e também não exibiu. Aqui ele simplesmente come esse caractere e eu preciso dele no arquivo .bat.

Isso é alguma regra da linguagem? Talvez da UTF-8?

O principal é: Eu tenho como contornar?

Segue o código do programa com a parte do .bat que eu havia inserido para testar:

<meta charset="UTF-8">
<h>insira a lista de empresas separadas por vírgula</h>
<input/>
<button>Gerar texto do arquivo</button>

<script>

    var competencia = prompt("Informe a competência");

    function pulaLinha () {
        document.write ("<br>");

    }

    var listaInput = document.querySelector("input");

    var listaEmpresas = [];

    function criaLista () {

        listaEmpresas = [listaInput.value];
        document.write("<br> A lista de empresas é: <br>" + listaEmpresas + "<br>");
        document.write("CD C:\Users\Administrador\OneDrive\Documentos\F5_SOLUCOES\MOVIMENTOS" + "<br>" + "MD " + competencia);
    }

    var button = document.querySelector("button");    
    button.onclick = criaLista;

    pulaLinha ();

</script>

Agradeço pela ajuda e aproveito para agradecer pelos conhecimentos adquiridos durante o curso. Estou muito empolgado em criar esses pequenos programas para resolver coisas do dia a dia de trabalho.

Um abraço!

4 respostas
solução!

Boa noite mauro, substitua as\por duas barras\\ assim : document.write("CD C:\\Users\\Administrador\\OneDrive\\Documentos\\F5_SOLUCOES\\MOVIMENTOS" + "<br>" + "MD " + competencia); creio que resolva seu problema, vou procurar uma explicacao mais tecnica e te passo assim que possivel

"A barra invertida () é um caractere de escape em Javascript (junto com muitos outros códigos semelhantes a C línguas). Isso significa que, quando o Javascript encontra uma barra invertida, ele tenta escapar do seguinte caractere. Por exemplo, \n é um caractere de nova linha (em vez de uma barra invertida seguida pela letra n).

Para gerar uma barra invertida literal, você precisa escapar dela . Isso significa que \ produzirá uma única barra invertida

A seguinte tabela nos demonstra quais caracteres podem ser obtidos dessa forma:

Código Descrição ' Aspas simples " Aspas duplas ' Aspas simples \ Contra barra \n Quebra de linha \t Tabulação \uXXXX Caractere unicode "

fontes: https://www.devmedia.com.br/javascript-string/41203 https://www.ti-enxame.com/pt/javascript/barra-invertida-do-javascript-nas-variaveis-esta-causando-um-erro/970654892/#:~:text=A%20barra%20invertida%20(%20%5C%20)%20%C3%A9,tenta%20escapar%20do%20seguinte%20caractere.

Valeu Leonardo!

Eu não sabia mesmo desta particularidade. Mas resolveu meu problema aqui!

Obrigado!!

Beleza Mauro! Bons estudos e uma boa semana pra você!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software