Kommandozeilenbefehl mit Variable



  • Hallo,

    mit
    -------------------------------------
    @echo off
    set var=Beispieltext
    echo %var%
    pause
    -------------------------------------
    geht OK

    wie aber setze ich einen AnsiString als Variable ein ??

    z.B:
    -------------------------------------
    AnsiString Beispiel = Edit1->Text;

    system("@echo off & xcopy %Beispiel% & pause");
    -------------------------------------
    was ist hier falsch ??

    mfg



  • such mal nach strings zusammen setzen.
    %Beispiel% ist nicht die Variable aus dem .bat sondern aus dem C Programm.



  • Hallo,

    natürlich ist %Beispiel% aus der C Programmierung. Meine Beispiele liegen nunmal in einer *.DB.
    Ist es denn wirklich notwendig bzw. einfacher meine Beispiele in einer *.txt Datei zu speichern und von dort aus in meinen Batch Code zu übernehmen ?

    PS: meine komplette Anwendung arbeitet nur mit *.DB

    mfg



  • sowas meinte ich:

    string dateiname ="bla.txt";
    string loesch_string = "del" + " " + dateiname;
    system (loesch_string.c_str());
    

    wenn es mehrere Befehle sind, geht es unter windows meine ich nicht, da jedes system() ein neues Eingabefenster öffnet. Wenn man dann zB das Verzeichnis mit "cd" wechselt, gilt das nur für das eine Fenster. Unter linux ging das, da konnte man glaube ich mit ; Befehle trennen.


  • Mod

    simöön schrieb:

    wenn es mehrere Befehle sind, geht es unter windows meine ich nicht, da jedes system() ein neues Eingabefenster öffnet. Wenn man dann zB das Verzeichnis mit "cd" wechselt, gilt das nur für das eine Fenster. Unter linux ging das, da konnte man glaube ich mit ; Befehle trennen.

    So primitiv die Windows Kommandozeile auch sein mag: Ich wette solch eine Funktionalität hat sie auch.



  • Hallo,

    im Moment verstehe ich nur Bahnhof.
    Der ober aufgeführte SourceCode geht nicht.
    Das Befehlstrennzeichen ist ein &. Semikolon geht nicht.
    (siehe mein Beispiel oben)

    mfg



  • hm, also das:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main(){
    string notepad = "notepad.exe"; 
    string dateiname = "c:\\bla.txt";
    string s = notepad + " " + dateiname;
    system (s.c_str());
    return 0;
    }
    

    funktioniert bei mir.
    statt "notepad.exe" kannst du dann natürlich "xcopy" oder sonstwas einsetzen. am besten den zusammengesetzten string (hier: s) nochmal anzeigen lassen zum überprüfen.
    weiss nicht wie man das noch besser erklären könnte, probiers einfach aus 😉



  • Hallo,

    Gut Ding braucht Weile.
    Vielen herzlichen Dank für die Hilfe

    mfg


Anmelden zum Antworten