Mittels C eine Batch erstellen
-
-
die " muessen geescapt werden, also \"
-
wenn ich vor die Sonderzeichen ein \ setze kommt nun die Meldung expected ')' before echo.
was iss das denn nun?
-
ganzer code, in [cpp] tags, wenns recht ist.
-
Fehler mit dem Operator hab ich mit escape behoben:
fprintf (datei, "if /i \"%1"=="-r" echo %LOGINVERS% & goto ENDEBK\n");
aber es kommt immer noch der Fehler: error: expected `)' before "echo"
wieso meckert er mir das echo an?
-
fprintf (datei, "if /i \"%1"=="-r" echo %LOGINVERS% & goto ENDEBK\n");
guck dir deinen code mal genau an. weil du ungequotete " in deinem string hast, geht der kaputt.
so muss es aussehen:
fprintf (datei, "if /i \"%%1\"==\"-r\" echo %%LOGINVERS%% & goto ENDEBK\n");
jedes woertliche % muss mit einem % gequotet werden, genauso jedes woertliche " mit einem backslash.
war dir das nicht klar oder woran liegts??
-
Nee, war mir nicht klar. Wie schon erwähnt, ich stehe noch bei den Anfängen:-)
Aber trotzdem Danke:-?
Hab aber noch ein Problem:
Bei der Ausgabe in die Datei gibt er mir bei einem Doppel Backslash oder % Zeichen (z.B.: \\ und %%) nur ein Zeichen aus. Zusätzliches kommentieren mit einem \ oder % hilft nicht.
Wie komentiere ich daß er mir die beiden Zeichen doppelt ausgibt?greets
-
Du mußt jedes einzelne Sonderzeichen getrennt escapen:
printf("\\\\"); // liefert '\\' printf("%%%%"); // liefert '%%'
-
So:
fprintf (datei, "%s", "if /i \"%1\"==\"-r\" echo %LOGINVERS% & goto ENDEBK\n");
kann man sich das Escapen der Prozentzeichen sparen. Ist sicherer.
-
Danke...habs mittlerweile raus gefunden.
Aber trotzdem Danke für die spontane und schnelle Hilfe....tolles Forum:-)