Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

c++ und Dos-Befehl

Oli2002 / 3 Antworten / Flachansicht Nickles

Hi,


ich möchte mit C++ einen Dos-Befehl ausführen, an den noch Variablen
geknüpft sind.


Hier das Beispiel:


"C:\windows\system32\tracert.exe -w 500 www.google.de"


Die Zahl 500 soll vorher eingegeben werden können und somit veränderlich sein.
Dasselbe gilt für die www-Adresse.


Es muß daher erst eine Abfrage realisiert werden (Was ja kein Problem ist).


Nun das eigentliche Problem:


bei dem Befehl system("..."); kann ich keine Variablen anfügen/einfügen.


z.B.: system("C:/windows/system32/tracert.exe -w " + zahl + " " + adresse);
--> dies funktioniert nicht, aber so stelle ich mir das vor



Vielleicht kann mir ja jemand helfen....

bei Antwort benachrichtigen
d-oli Nachtrag zu: „Hmmm kann s leider im Moment nicht ausprobieren. Habe aber irgendwie das...“
Optionen

Ups ... da ist wohl irgend ein Problem mit '\' aufgetaucht ... denkt wohl es sei HTML ...
Ich probiers nach mal








/* Hmmm – kann's leider im Moment nicht ausprobieren. Habe aber irgendwie das Gefühl, dass es ein C-String Problem ist.
Denn ist " " nicht gleich 'Leerschlag' + '\0'? */

/* Mach mal: */

#include <iostream>

int main( int argc, char** argv ){

// Sollte bei C:\windows\system32\tracert.exe -w 500 www.google.de
// 4 ergeben

std::cout<<argc<<endl;
// Ausgabe =
// tracert.exe
// -w
// 500
// www.google.de
for( int i = 0; i < argc; ++i){
std::cout<<argv[i]<<endl;
}

return 0;
}

/* Probier es mal mit String zusammenfügen (kenne die Syntax nicht auswendig aber ich glaube strcnt oder strconcat – so was in der art). */
#include <iostream>
#include <string>
#include …

int main( int argc, char** argv ){

string Par = "";

// ...
strcnt( Par, argv[0] );
strcnt( Par, const string( " " ) );
strcnt( Par, argv[1] );
strcnt( Par, const string( " " ) );
strcnt( Par, argv[2] );
strcnt( Par, const string( " " ) );
strcnt( Par, argv[3] );
// so was in der Art ...

// ... und dann ...
system(Par);

// ...

return 0;
}

/* ... oder ... */
int main( int argc, char** argv ){

string Par = "C:/windows/system32/tracert.exe -w 500 www.google.de");

// ... und dann ...
system(Par);

// ...

return 0;
}

/* Gruss, d-oli */




Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen