Espaçamento ao abrir executar um arquivo .bat [RESOLVIDO]

1. Espaçamento ao abrir executar um arquivo .bat [RESOLVIDO]

Hiago Briano
hiagobri

(usa Kali)

Enviado em 07/12/2017 - 08:16h

Olá amantes da informatica.

Eu estou tentando criar um programa (linguagem C) que executar um arquivo "*.bat" porém ao executar ele não reconhece o caminho do programa (para no primeiro espaço), na linha de comando (CMD) só aparece "C:\arquivos\etiqueta" e não "C:\arquivos\etiqueta Numero Serie padrão\ENSP.bat", se vocês porem me ajudar eu agradeço!




#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<windows.h>
#include<unistd.h>
#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
#include <direct.h>
#include <locale.h>

int numero;

int main(int argc, char *argv[])

{
system("@CHCP 1252 >NUL");
system("color 3f");
system ("title Copia de etiquetas");
printf("*========================*\n");
printf("| Qual etiqueta vai usar?|\n");
printf("*========================*\n\n");
printf("*===================================================*\n");
printf("| 1 - etiqueta Identificação OP |\n");
printf("| 2 - etiqueta Identificação padrão |\n");
printf("| 3 - etiqueta Numero Serie padrão |\n");
printf("| 4 - etiqueta Numero Serie SEM INMETRO |\n");
printf("*===================================================*\n\n");
printf(" Selecione a etiqueta: ");
scanf("%d", &numero);
switch(numero)
{
case 1:
system("cls");
printf("Copiando os arquivos... \n");
system("C:\\arquivos\\etiqueta Identificação OP\\EIO.bat");
system("pause");
break;

case 2:
system("cls");
printf("Copiando os arquivos... \n");
system("C:\\arquivos\\etiqueta Identificação padrão\\EIP.bat");
break;

case 3:
system("cls");
printf("Copiando os arquivos... \n");
system("C:\\arquivos\\etiqueta Numero Serie padrão\\ENSP.bat");
break;

case 4:
system("cls");
printf("Copiando os arquivos... \n");
system("C:\\arquivos\\etiqueta Numero Serie SEM INMETRO\\ENSSI.bat");
break;

default:
printf("Opcao invalida");
}



system("pause");
return 0;
}


  


2. Re: Espaçamento ao abrir executar um arquivo .bat [RESOLVIDO]

Ricardo Vasconcellos
qxada07

(usa Slackware)

Enviado em 07/12/2017 - 11:15h

Amigo

Não sei se seria o seu caso mas você tentou colocar o \ avisando que irá utiliza o caractér espaço??

Ex: Atual - "c://etiqueta numero seria padrao"
Utilizar - "c://etiqueta\ numero\ seria\ padrao"

Neste caso você estaria avisando que os espaço seria o caracter de espaço mesmo, garantindo que o sistema não reconheço o espaço como sendo coisas diferentes. Tipo c://etiqueta UMA COISA numero OUTRA COISA seria OUTRA COISA padrao OUTRA COISA.... Quando na realidade faz parte da mesma coisa.

Espero que ajude.,

Att.

Ricardo Vasconcellos
Analista TI Sênior

Jesus Cristo morreu por mim e por você para que tenhamos vida eterna. Jesus Te ama
João 3:16

O Shell é o limite!!!!


3. Re: Espaçamento ao abrir executar um arquivo .bat [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 07/12/2017 - 11:28h

Não sei se o shell do Windows suporta escape com barras invertidas (“\”), como suporta o shell do UNIX. Talvez, para você, seja melhor usar colocar o nome inteiro entre aspas.

E você deve lembrar, também, que tanto barras invertidas quanto aspas são tratadas de modo especial pelo C. Desse modo, você deve escapá-las de modo a embuti-las em strings do C, como mostrado no exemplo abaixo.

system("\"C:\\arquivos\\etiqueta Identificação OP\\EIO.bat\""); 



4. Re: Espaçamento ao abrir executar um arquivo .bat [RESOLVIDO]

Hiago Briano
hiagobri

(usa Kali)

Enviado em 07/12/2017 - 17:13h

paulo1205 escreveu:

Não sei se o shell do Windows suporta escape com barras invertidas (“\”), como suporta o shell do UNIX. Talvez, para você, seja melhor usar colocar o nome inteiro entre aspas.

E você deve lembrar, também, que tanto barras invertidas quanto aspas são tratadas de modo especial pelo C. Desse modo, você deve escapá-las de modo a embuti-las em strings do C, como mostrado no exemplo abaixo.

system("\"C:\\arquivos\\etiqueta Identificação OP\\EIO.bat\""); 


consegui resolver dessa forma, obrigado!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts