Ir ao conteúdo

Posts recomendados

Postado

Olá amantes da informática.

Eu estou tentando criar um programa que executa 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 porém 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;      
}

 

  • Membro VIP
Postado

Olá.

31 minutos atrás, Hiago Briano disse:

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 porém me ajudar eu agradeço!

 

Creio que seja necessário as aspas duplas no comando, ou seja, teria que chegar assim no CMD:

 "C:\arquivos\etiqueta Numero Serie padrão\ENSP.bat"

Incluindo as aspas....

 

Por exemplo, tentado chegar numa pasta do Java, usando o tab, ficou assim:

C:\>"c:\Program Files (x86)\Java\jre1.8.0_151\bin"

Perceba que o Windows já insere as " quando uma pasta ou arquivo tem espaço... pois, creio eu, o espaço dá a entender que a palavra que vem depois seria um "parâmetro" do que está antes (em detrimento de ser "parte do que veio antes")... Resumindo... se fosse o caso, terá que ver como inserir as " no comando (chegar com as "), creio que deva ser com "\" + alguma coisa.

 

 

No aguardo.

Postado

então, ele chega na linha de comando na forma correta, só que como você disse ele deve reconhecer como parâmetro.

 

e eu já tentei com aspas, sem aspas, tanto a dupla (") quanto a outra ('), e não funcionou.

 

 

  • Membro VIP
Postado
1 hora atrás, Hiago Briano disse:

então, ele chega na linha de comando na forma correta

Na forma correta como? tem como demonstrar como está?

 

 

1 hora atrás, Hiago Briano disse:

só que como você disse ele deve reconhecer como parâmetro.

Se está reconhecimento como parâmetro, então não está "certo".

 

 

1 hora atrás, Hiago Briano disse:

e eu já tentei com aspas, sem aspas, tanto a dupla (") quanto a outra ('), e não funcionou.

Posta a tela de como chega e o código aqui para analisarmos.

Postado
5 horas atrás, isrnick disse:

Use a seqüência de escape \" para gerar o caractere de aspas duplas.

 

Ex:


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

 

deu certo! obrigado

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...