Boa tarde,
O código abaixo basicamente serve para criar um comando próprio chamado "renomeiaDir", eu poderei dar dois parâmetros para ele "renomeiaDir <Diretório Origem> <Diretório Destino>. Essa parte está ok, porem precisarei depois criar mais comandos, e para cada comando precisarei criar um IF, e para entrar no IF criei um while que deve ler a primeira string e guardar na variável "SC", essa variável receberá o comando e será comparado com as variáveis que estão em Comandos, se for igual entra no IF e executa o restante dos parâmetros. Porem esse while e/ou a comparação tem alguma coisa que não estou entendendo que não deixa entrar no IF.
Obrigado pelo auxílio.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main() {
//VARIÁVEIS GLOBAIS ==================================
char cmd01[60]; //
char sourceFile[1024]; //
char destFile[1024];
char letra;
char SC[50];
int contador = 1;
int quantidade_comandos = 1;
char matriz_de_comandos[quantidade_comandos][50];
//==================================================
//COMANDOS GERAIS ==================================
char renomearDir[50] = "renomearDir:"; //Aqui seria o conteudo da string para comparar e entrar no if
char exit[10] = "exit\n";//A comparacao do exit para entrar no IF funciona
//==================================================
printf("ht-C0mmand >> ");
fflush(stdin);
fgets(cmd01, 60, stdin);
while(cmd01[contador] != '\0'){ //Aqui separar a string renomearDir e guarda na variavel SC
SC[contador]=cmd01[contador];
contador++;
}
printf("|DEBUG: Executed command > %s\n", SC);
printf("|DEBUG: Command > %s\n", exit);
printf("|DEBUG: Command > %s\n", renomearDir);
// RENOMEAR ARQUIVO =============================================================
if (strcmp(SC, renomearDir) == 0){ //Aqui teria que comparar o conteúdo, se for igual retorna zero e entra no if, mas não acontece
printf("Debug| NO IF\n"); //Porem se trocar para 1, queé o retorno de string diferente, ele entra, então seria somente
int contador_comandos = 1; //a comparacao que tem algo que eu ainda não peguei
int contador_letras = 0;
for (contador=0; contador < strlen(cmd01)-1; contador++) {
letra = cmd01[contador];
if (letra == ' ') {
matriz_de_comandos[contador_comandos-1][contador_letras] = '\0';
contador_comandos++;
contador_letras = 0;
continue;
}
matriz_de_comandos[contador_comandos-1][contador_letras] = letra;
contador_letras++;
}
matriz_de_comandos[contador_comandos-1][contador_letras] = '\0';
// BACKUP strcpy(sourceFile, matriz_de_comandos[0]);
strcpy(sourceFile, matriz_de_comandos[quantidade_comandos]);
printf("Debug | first path> %s \n", sourceFile);
strcpy(destFile, matriz_de_comandos[quantidade_comandos+1]);
printf("Debug | second path> %s \n", destFile);
rename (sourceFile, destFile);
}
//===============================================================================
// EXIT =========================================================================
if (strcmp(SC, exit)==0){
printf("SAINDO!\n=====");
}
system("pause");
}