Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Hiago Briano

C espaçamento ao abrir executar um arquivo .bat

Recommended Posts

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;      
}

 

Editado por Simon Viegas
Olá! Favor ler tópico e seguir orientações sobre POSTAGEM DE CÓDIGOS: http://www.clubedohardware.com.br/announcement/27-poste-seus-c%C3%B3digos-corretamente/

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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.

     

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    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.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

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

     

    Ex:

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

     

    • Curtir 2
    • Obrigado 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×