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 programm

    C:\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


Anmelden zum Antworten