Originariamente inviato da giuseppe500
int main(int argc, char *argv[])
{
char szTopic[] = "C:\\prova.bat";
char par[255]="\0";

while(argc--)//prende solo la prima lettera dell'argomento
par[argc]= *argv[argc]++;
Questo è sbagliato. A parte il fatto che prendi solo il primo carattere dei parametri. Comunque bisognerebbe vedere se tali parametri contengono degli spazi, perché in tal caso nella stringa unica che stai componendo, dovresti metterli tra " ". E inoltre se il parametro contiene degli " devi fare l'escape mettendo \".
Insomma ... è meno banale di quello che pensi.