Batch im C++
-
#include <Stdlib.h>
....
....
System ("copy %1 C:\\Ordner\");sorry gehört in die Lücke
-
verstehe ich dich richtig, das du herausfinden willst mit
welchen kommandozeilenparametern das prog gestartet wurde?
wenn ja dann:int main( int argc, char* argv[] ) { ... } in argc steht die anzahl, in argv die uebergebenen argumente.
-
#include <iostream> using namespace std; int main(int argc, char * argv[]) { cout << "Übergebene Argumente:\n" for(int i = 0; i < argc; ++i) cout << i << ":\t" << argv[i] << endl; return 0; }
dein problem kanns du so lösen
#include <iostream> #include <sstream> #include <cstdlib> using namespace std; int main(int argc, char * argv[]) { if(argc > 1) { ostringstream oss; oss << "copy " << argv[1] << " C:/Ordner/"; system( oss.str().c_str() ) } return 0; }
[ Dieser Beitrag wurde am 15.04.2003 um 19:12 Uhr von Dimah editiert. ]
-
Nein das meine ich nicht!
Ich meine: Um eine beliebiege Datei in ein bestimmtes Verzeichnis zu kopieren muss man eine Batch-Datei schreiben in der steht: copy %1 C:\...
Im C++ sieht dass so aus: System ("copy %1 C:\...");
Das C++ scheint den Befehl %1 nicht zu kennen.
Jetzt brauche ich einen anderen Befehl statt dem %1.
mfg
Beastmaster
-
Was willst du tun?
Sowas?C:\deinbatch.bat datei.x
und deine batch datei kopiert datei.x nach C:\ woauchimmer?
und jetzt willst du mit deinem programmC:\deinprog.exe datei.x
dasselbe erreichen? (Was ganz neben bei Dimah schon gemacht hat...)
oder willst du was anderes?[ Dieser Beitrag wurde am 15.04.2003 um 19:22 Uhr von davie editiert. ]
-
Ich meinte mit dem Post den Beitrag vom entelechie. Aber dass vom Dimah hat sich schon ganz gut angehört.
Übrigens will ich dass Prog mit einer Dateierweiterung koppeln z.B. mit *.dat!
Dass ich eine Datei mit der Endung dat von wo auch immer öffne und meinProg kopiert diese Datei in ein Bestimmtes Verzeichniss.[ Dieser Beitrag wurde am 15.04.2003 um 19:27 Uhr von Beastmaster editiert. ]
-
Dimah's Lösung Funktioniert leider nicht
-
'%1' gibt in einem 'Batchscript' den ersten Parameter an. In C++ wäre das dann 'argv[1]' bzw '*++argv', oder wie man seinen zweiten Parameter an main auch immer genannt haben mag. Die Lösung von Dimah funktioniert entweder, oder Du postest den 'Fehler'.
[ Dieser Beitrag wurde am 15.04.2003 um 19:51 Uhr von Daniel E. editiert. ]
-
Original erstellt von Beastmaster:
Das C++ scheint den Befehl %1 nicht zu kennen.Liegt vielleicht daran, dass es kein Befehl ist, sondern ein Teil eines Strings...
-
Mh...
versuch mal in Dimah's Lösung das
oss << "copy " << argv[1] << " C:/Ordner/"
durch
oss << "copy " << argv[1] << " C:\\Ordner\\"
zu ersetzen...
Ich kann es leider nicht ausprobieren, da ich kein Dos bzw. Windows mehr habe
MfG Nero