Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

konsolen befehle in cpp

Frage Entwicklung C und C++

Mitglied: Lucaro

Lucaro (Level 1) - Jetzt verbinden

08.03.2006, aktualisiert 23.04.2006, 16175 Aufrufe, 9 Kommentare

Was ist hier falsch..?

<font class="code">

#include "stdio.h"
#include "iostream.h"

void upload()
{
SYSTEM("echo off");
SYSTEM("cls");
SYSTEM("if not exist c:\AoE III files for upload md c:\AoE III files for upload");
SYSTEM("cd %homepath%\eigene dateien\my games\age of empires 3\savegame");
SYSTEM("copy *.xml c:\AoE III files for upload");
SYSTEM("cls");
SYSTEM("if exist C:\upload.ftp reame C:\upload.ftp upload1234567890.ftp");
SYSTEM("echo open gamefiles.ga.funpic.de > C:\upload.ftp");
SYSTEM("echo gamefiles >> C:\upload.ftp");
SYSTEM("echo * >> C:\upload.ftp");
SYSTEM("echo prompt >> C:\upload.ftp");
SYSTEM("echo binary >> C:\upload.ftp");
SYSTEM("echo cd Lucaro >> C:\upload.ftp");
SYSTEM("echo mput c:\AoE III files for upload\*.* >> C:\upload.ftp");
SYSTEM("echo bye >> C:\upload.ftp");
SYSTEM("ftp -s:C:\upload.ftp");
SYSTEM("del C:\upload.ftp");
SYSTEM("if exist C:\upload.ftp reame C:\upload1234567890.ftp upload.ftp");
return 0;
}


void download()
{
SYSTEM("echo off");
SYSTEM("cls");
SYSTEM("cd %userprofile%\desktop\");
SYSTEM("if not exist AoE III Files md AoE III Files");
SYSTEM("cd AoE III Files");
SYSTEM("if exist C:\down.ftp rename C:\down.ftp down1234567890.ftp");
SYSTEM("echo open gamefiles.ga.funpic.de > C:\down.ftp");
SYSTEM("echo gamefiles >> C:\down.ftp");
SYSTEM("echo * >> C:\down.ftp");
SYSTEM("echo binary >> C:\down.ftp");
SYSTEM("echo prompt >> C:\down.ftp");
SYSTEM("echo cd Lucaro >> C:\down.ftp");
SYSTEM("echo mget *.xml >> C:\down.ftp");
SYSTEM("echo bye >> C:\down.ftp");
SYSTEM("ftp -s:c:\down.ftp");
SYSTEM("del C:\down.ftp");
SYSTEM("if exist C:\down1234567890.ftp rename C:\down1234567890.ftp down.ftp");
SYSTEM("exit");
return 0;
}

void main()
{
cout << "Willkommen Lucaro";
cout << "fuer upload u und fuer download d eingeben: ";
char auswahl;
cin >> auswahl;

if auswahl == u;
{
upload();
}

if auswahl == d;
{
download();
}

return 0;
}

</font>
Mitglied: ITwissen
08.03.2006 um 22:15 Uhr
rename schreibt man mit N in der Mitte, nicht reame!

War das die Loesung?
Bitte warten ..
Mitglied: 13100
08.03.2006 um 22:27 Uhr
wenn du eh alles mit der funktion "system" machst, kannste eigentlich auch
gleich ner batchlösung den vorzug geben.

was willst du eigentlich genau mach?
Bitte warten ..
Mitglied: Lucaro
09.03.2006 um 09:30 Uhr
eben, war ursprünglich auch ne Batch, genauergesagt 2. Ich wollt eine exe draus machen, weil das die beiden vorteili hätte, dass es nur eine datei ist, und dass man nicht "versehentlich" den inhalt verändert, so dass gar nix mehr get...

hat mal Jemand versucht, das zu compilen..?

bei mir gings nicht...
Bitte warten ..
Mitglied: ITwissen
09.03.2006 um 10:16 Uhr
Zum Scripten ist C++ vielleicht die falsche Sprache. Ich wuerde dir wie ueblich meine Lieblingsscriptsprache "Autohotkeys" empfehlen.
http://www.autohotkey.com

In der dortigen Hilfe ist ein Bespiel, welches fast das macht, was du willst. Autohotkey Scripts kann man leicht in ein Exe umwandeln.

Zurueck zu deinem Problem ...
Ich habe jetzt einfach mal angenommen, du versuchst das im Cygwin mit dem g++ zu compilieren. Mein Versuch damit gab aber so viele Fehler, dass ich nicht glaube, dass du Cygwin/g++ benutzt. Daher meine Frage:

Welches OS?
Welcher Compiler (Version)?
Bitte warten ..
Mitglied: Lucaro
09.03.2006 um 15:09 Uhr
Dev - C++ auf win XP
Bitte warten ..
Mitglied: ITwissen
10.03.2006 um 01:02 Uhr
Dev - C++ heisst wohl Microsoft Developer Studio ?

C/C++ ist case sensitive "SYSTEM" wird also klein geschrieben: system
"\" ist ein Escape Character in C/C++, da kommen also erstmal Syntax-Fehler.
Die Funktionen sind "void" koennen also nichts "return"en.

Bevor wir daran weiter rumdocktern. Selbst wenn es compiliert und du ein "exe" hast, kann das so nicht funktionieren. "if" ist z.B. kein Befehl und kann mit "system" somit nicht aufgerufen werden. "if" gibt es nur innerhalb von cmd.exe.
Bitte warten ..
Mitglied: 13100
10.03.2006 um 01:09 Uhr
dev c++ is nich von ms, soweit ich weiss.

ich glaube die lösung sollte erstmal batch heissen. da es für ne
c lösung, zumindest auf den erstenblick, keinen grund gibt.
Bitte warten ..
Mitglied: miniversum
23.04.2006 um 11:49 Uhr
Dev-C++ ist ein kostenlosen Compiler von Bloodshed (http://www.bloodshed.net/). Aber das nur so am Rande.

Wie schon erwähnt wurde mußt du SYSTEM groß schreiben.

Mit dem SYSTEM("cd %userprofile%"); wirst du denke ich ein Problem bekommen.
Da es Batch ist kannst du ja einfach erst mit der ersten Zeile anfangen und dann immer weitere hinzufügen. Dann siehst du wo es Probleme gibt.

Übrigens Rückgaben gehen indem du sowas z.B. schreibst:

Zeit = SYSTEM("echo %time%");

Versuch doch nen ganz anderen Ansatz...
Lasse dir die entsprechende Batchdatei vom C-Programm schreiben, führe sie dann aus und lasse sie sich danach selbst löschen.

miniversum
Bitte warten ..
Mitglied: Biber
23.04.2006 um 13:22 Uhr
Moin, Lucaro,

also, angenommen, Du wolltest wirklich diesen zum Fliegen bringen (nur Syntaxberichtigung ohne Frage nach der Sinnhaftigkeit), dann
  • Bei den Deklarationen sollte die Headerdateien in spitze Klammern
01.
#include <stdio.h> 
02.
#include <iostream.h>
  • function main()
- Die muss vom Typ int sein. Du hast ja auch richtigerweise ein "return 0" am Ende stehen.
Normalerweise bedeutet Returnwert 0 ein Ende ohne Fehler,; bei Fehlern würdest Du mit 1,2,..n aussteigen und so den Errorlevel/den Fehlergrund feststellen können, nachdem der Schnipsel beendet ist.
- Nach den cout-Zeilen solltest Du ein "\n" (Zeilenvorschub) anfügen, sonst landet alles in einer Zeile.
- die if-Bedingungen müssen in Klammern
- die Buchstaben "d" und "u", gegen die geprüft wird, müssen in einfache Anführungszeichen.
01.
int main() 
02.
03.
cout << "Willkommen Lucaro\n"; 
04.
cout << "fuer upload u und fuer download d eingeben: \n"; 
05.
char auswahl; 
06.
cin >> auswahl; 
07.
 
08.
if (auswahl == 'u'); 
09.
10.
upload(); 
11.
12.
 
13.
if (auswahl == 'd'); 
14.
15.
download(); 
16.
17.
 
18.
return 0; 
19.
}
  • die functions upload()/download()
Will ich nur andeuten hier:
- wenn das eine void()-Function ist, darf sie nicht "return 0" liefern. Sondern nur "return"
Also entweder "int upload()/int download()" mit "return 0;" oder "return 23;" ODER
deklarieren als "void upload()/void download()" und dann nur "return;"

- function system(), wie bereits geschrieben, wird klein geschrieben
- wenn Du in C++ tatsächlich EINEN Backslash meinst (z.B. bei Pfadangaben), musst Du ZWEI schreiben, denn ein Backslash "\" ist ein Steuerzeichen in C/C++.
Statt "C:\upload.ftp" also schreiben "C:\\upload.ftp"
- da Du an einigen Stellen Pfadangaben mit Leerzeichen ansprichst, musst Du die für den CMD-Interpreter auch in Anführungszeichen übergeben.
Diese Anführungszeichen wiederum musst Du auch als '\"' maskiert übergeben.
Folgende Zeile wäre also syntaktisch richtig und würde auch ein Verzeichnis anlegen:
01.
system("if not exist \"c:\\AoE III files for upload\" md \"c:\\AoE III files for upload\"");
...denn die CMD.exe bekommt:
if not exist "c:\AoE III files for upload" md "c:\AoE III files for upload"

So könntest Du den Schnipsel kompilierbar bekommen.
Denke, dass es auch der Dev C++- Compiler so frisst.

Allerdings:
ich würde von diesem Ansatz nur die Idee übernehmen, die upload.ftp/download.ftp Datei zu schreiben (aber nicht über den Umweg über CMD.exe und echo)

Du kannst diese Textdateien schreiben mit folgender Mimik:
01.
int upload() 
02.
03.
FILE *fp; 
04.
 
05.
if ((fp = fopen("c:\\upload.ftp", "a+")) ==NULL){ 
06.
  printf("Kann Datei nicht anlegen\n"); 
07.
  exit(1);  
08.
09.
fprintf( fp, "open gamefiles.ga.funpic.de\n"); 
10.
fprintf( fp, "...bla..."\n); 
11.
.... 
12.
fclose(fp); 
13.
// ...und nach Benutzung die *.ftp-Dateien wieder löschen: 
14.
// Prototyp ist: int remove(char *filename); 
15.
remove("c:\\upload.ftp"); 
16.
 
17.
 

Beachte auch hier die Maskierung der Backslashes "\\" und den Zeilenvorschub am Ende ("\n").

Hope that helps.
Biber
Bitte warten ..
Ähnliche Inhalte
Java
Java konsole per java befehl einblenden
gelöst Frage von deinernstjetztJava6 Kommentare

Hallo, ich habe eine Konsolenanwendung programmiert, allerdings ist das Problem, das man diese nicht mit klick auf das .jar ...

C und C++
Wie spreche ich diese Cpp Datei unter CSharp an
gelöst Frage von Aicher1998C und C++1 Kommentar

Hallo Ich stehe mal wieder völlif aufm Schlauch, kann mir bitte jemand sagen, wie ich diese C Datei unter ...

Windows Server
Win2008r2 RDP auf Konsole
gelöst Frage von SlainteMhathWindows Server

Moin, ich steh gerade auf dem Schlauch. Ich habe einen Win2008r2 Server auf den muss eine GUI auf der ...

Entwicklung
Postfachgrößeneinstellung in SBS Konsole verbieten
Frage von TommyDerWalkerEntwicklung5 Kommentare

Hallo zusammen, wir haben einen Server auf dem ein DC und ein Exchange läuft. BS ist ein SBS2007 (Exchange ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 10 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 10 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 18 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...