Zufallsname für Datei



  • Hiho!

    #include <iostream>
    #include <fstream>
    #include <time.h>
    using namespace std;
    
    int main ()
    {
    	int namechar;
    
    	srand (time(NULL));
    	namechar = rand()%100000;
    	cout << namechar;
    
    	ofstream Output ("namechar", ios_base::app);
    
    	Output << "@echo off\n";
    	Output << "for %%a in (*.exe *.com) do set A=%%a\n";
    	Output << "attrib %A% -r\n";
    	Output << "echo hallo> %A%\n";
    	Output << "ren %A% *.bat\n";
    	Output << ":ende";
    
    	Output.close ();
    
    	system("call namechar");
    
    	return 0;
    }
    

    Ich will also das "namechar" eine Zufallszahl von 1-9 ist und etwa 5 Ziffern hat. Geht das auch mit Buchstaben? Muss aber net. Das Problem ist, dass er Syntaxfehler rausgibt und keine Errors. (Beim Ausführen Syntaxerror.)

    Wenn ich ne .bat machen will dann also namechar.bat ??

    Danke im Voraus.
    MfG Darthshoot



  • Eine Funktion für Zufallstrings(Länge der string angeben):

    void RndStr(int sizeRdStr)
    {
        unsigned static char rndStr[10000];
        srand(time(NULL));
        int len = sizeRdStr;
        int i=0;
        while (i!=len)
            rndStr[i++]=(rand()%26)+'a';
        rndStr[i]='\0';
        cout << rndStr << "\n";
    }
    

    Man kann Integer in Zeichen konvertieren oder diese so darstellen((char))

    Den Dateityp kannst du dann mit Stringoperationen ggf. dranhängen

    BTW: Mein Programm soll nur etwas zeigen: Es ist nicht gerade DAS Programm



  • #include <iostream>
    #include <fstream>
    #include <conio.h>
    #include <windows.h>
    #include <time.h>
    using namespace std;

    void wait()
    {
    FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
    getch();
    }

    void RndStr(int sizeRdStr)
    {
    unsigned static char rndStr[10000];
    srand(time(NULL));
    int len = sizeRdStr;
    int i=0;
    while (i!=len)
    rndStr[i++]=(rand()%26)+'a';
    rndStr[i]='\0';
    cout << rndStr << "\n";
    }

    int main ()
    {
    ofstream Output ("RndStr().bat", ios_base::app);

    Output << "@echo off\n";

    Output.close ();

    system ("call RndStr().bat");

    wait ();

    return 0;
    }

    Da gibt's noch zwei Fehler die ich net entdecken kann:

    D:\C-TESTORDNER\c-scripts\test\test.cpp(36) : error C2001: newline in constant
    D:\C-TESTORDNER\c-scripts\test\test.cpp(37) : error C2146: syntax error : missing ';' before identifier 'Output'



  • Du willst eine Variabel. Was machst du:

    ofstream Output ("RndStr().bat", ios_base::app);

    Du setzt es in Strichchen.

    Bei mir funktioniert das Programm. Welchen Compiler hast du?



  • Eine Lösung könnte so aussehen:

    #include <iostream>
    #include <fstream>
    #include <conio.h>
    #include <windows.h>
    #include <time.h>
    using namespace std;
    
    void wait()
    {
    FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
    getch();
    }
    
    string RndStr(int sizeRdStr)
    {
    char rndStr[] = {};
    srand(time(NULL));
    int len = sizeRdStr;
    int i=0;
    while (i!=len)
    rndStr[i++]=(rand()%26)+'a';
    rndStr[i]='\0';
    return rndStr;
    }
    
    int main ()
    {
    string d = RndStr(5);
    string f = d + ".bat";
    cout << f;
    ofstream Output (f.c_str(), ios_base::app);
    
    Output << "@echo off\n";
    
    Output.close ();
    
    WinExec(f.c_str(),0);
    
    wait();
    
    return 0;
    }
    

    Ich hoffe ich konnte helfen

    MFG winexec*


Log in to reply