Stapelverarbeitungs - Programm --- Probleme

angryolex

Cadet 2nd Year
Registriert
Nov. 2007
Beiträge
24
Hi,
also ich komme gleich zur Sache:
Ich wollte ein Kleines batch programm erstellen, das sich automatisch in das autostart verzeichniss heftet. soweit so gut, er kopiert sich in jeden ordner den ich will, AUSSER die in denen ein Umlaut vorkommt, z.B. "Startmenü". Hier ist mein bisheriger script:
_______________________________
xcopy test.bat C:\"Dokumente und Einstellungen"\"All Users"\Startmenü\Programme\Autostart
_______________________________

wie gesagt...das Problem ist der Ordner Startmenü, weil die "Batchprogrammierung" wahrscheinlich, weil ursprünglich englisch, keine Umlaute erkennt bzw. annimmt.

------
kennt irgendjemand einen "Trick" wie ich diese Schwierigkeit umgehe ? ? ?

---> thx4help <---
 
Batch-Dateien verwenden einen anderen Zeichensatz, nach dem ein "ü" anders dargestellt wird. Versuche mal, in der Eingabeaufforderung "echo ü >info.txt" einzugeben. Dann öffne die "info.txt" und kopiere den Inhalt an die Stelle des "ü" in der Batchdatei.

Oder einen DOS-Editor bzw. ein DOS-Format benutzen.
 
Sorry aber das mit der eingabeaufforderung haut net hin... da kommt iwi bei mir nichts raus
....
 
"iwi"? Keine Ahnung was Du meinst, aber bei meiner Eingabeaufforderung haut es hin. Ich habe Dir mein "ü" mal angehängt.

Ich probiere solche Sachen ja aus, bevor ich Dir irgendwelchen Käse erzähle... ;)
 

Anhänge

cool danke es funzt ! !!

iwi=IrgendWIe
;-)

p.s. ich wollte dir nichts unterstellen ;-)
 
Tach auch,
ich habe das selbe vor, ich wil auch ins Startmenü! Bei mir ist nur das Problem, das ich mit C++
ein Programm schreibe, und am Ende der Ausführung eine Datei sich ins Autostart schreibt.
Nun wusste ich schon vorher, das das das ü nicht übernommen wird und stattdessen  eingesetzt werden muss!
-------------------------------------------------------------------------------------
|system("cd %USERPROFILE%\Startmen\Programme\Autostart");|
-------------------------------------------------------------------------------------
so sieht das in C++ aus, damit das in "" als Eingabe in die Eigabeaufforderung übernommen wird!
Doch das funzt net! Das  wird nicht erkannt und stattdessen ? genommen!
Das sieht dann so aus
----------------------------------------------------------------------------------------------------
|cd C: Dokumente und EinstellungenUSERNAMEStartmen?ProgrammeAutostart|
----------------------------------------------------------------------------------------------------

kann mir jemand bitte weiterhelfen!?
 
Zuletzt bearbeitet:
versuch es mal mit dem * |system("cd %USERPROFILE%\Startmen*\Programme\Autostart");|
 
Ich kenne mich zwar wenig mit C++ aus, aber ich glaube, dass man Backslashs in Strings maskieren muss. Also versuch mal folgendes:
Code:
system("cd %USERPROFILE%\\Startmen\\Programme\\Autostart");
Allerdings kannst Du das "ü" wahrscheinlich nicht einfach weglassen. Es könnte ja auch einen Ordner "Startmen" geben (für Männer, die gleich loslegen wollen ;) ). Wie sollte das Programm zwischen den Ordnern unterscheiden?
 
Wieso hast Du es überhaupt weggelassen, im obigen Beispiel habe ich ja auch keine leere Textdatei verlinkt!? ;)

@Backslash: oder so...
 
also...
ich bin auch mal eine stufe höher gegangen und möchte das programm, welches ich in das startmenü heften will, durch ein anderes programm dorthin bringen. Alles funzt, bis auf eine kleine sache: man kann das ding in jeden ordner pappen, allerdings gibt es ein problem mit den anführungszeichen... seht es euch selber an
p.s. alles in c++

------------
system ("xcopy 0001.exe C:\\Dokumente und Einstellungen\\All Users\\Startmen\x81\\Programme\\Autostart");
-------------
das prob is, das die anführungszeichen teil des syntax von "system ("xcopy....") ist. Teile des Pfades müssen aber auch in anführungszeichen gesetzt werden: ("Dokumente und Einstellungen"...) allerdings ist dies ja nicht möglich, da man den syntax sonst "kapput machen würde"....
theoretisch müsste es ja irgendwie so aussehen
----
: system ("xcopy 0001.exe C:\\"Dokumente und Einstellungen"\\"All Users"\\Startmen\x81\\Programme\\Autostart");
----
ich hoffe ihr versteht mein problem...
 
Zuletzt bearbeitet:
system ("xcopy 0001.exe C:\\"Dokumente und Einstellungen"\\"All Users"\\Startmen\x81\\Programme\\Autostart");

system (xcopy 0001.exe "C:\\Dokumente und Einstellungen\\All Users\\Startmen*\\x81\\Programme\\Autostart");
Bist Du denn sicher das es einen Ordner Startmen gibt? Der heisst Doch wohl Startmenü, verwende einen * für das Ü, vor dem X81 fehlt ein \ .
Wo liegt die Datei 0001.exe, da fehlt der Pfad also xcopy C:\0001.exe, sonst wird im selben Pfad gesucht wo Du Dich gerade befindest.
 
nein, der ordner heist startmenü, das x81 is der hex code dafür, weil es ü ja net gibt bei c++...
und das mit dem Pfad funzt auch so...
das mit den anführungszeichen geht net, weil der compiler dann denkt, bei dem zweiten anführungszeichen vor dokumente wäre der befehl system ("xcopy [...]" ) zu ende....

p.s. das mit dem ü

http://www.c-plusplus.de/forum/viewt...-is-39326.html
 
Zuletzt bearbeitet:
ka ob du das Prob schon gelöst hast, aber so sollte es dann aussehen
Code:
system ("xcopy 0001.exe \"C:\\Dokumente und Einstellungen\\All Users\\Startmen\x81\\Programme\\Autostart\"");
Damit sollte es aufjedenfall funktionieren.
Hab das ein ähnliches Problem, aber fangen wir mit dem Ziel welches ich erreichen möchte an.
Das Programm liest den kompletten Pfad zu den Ordnern "Desktop", "Favoriten", "Anwendungsdaten" usw aus und soll diese auf ein anderes Laufwerk sichern.

Problem1: Wie kann ich mit C-werkzeugen diese Verzeichnisse rekursiv kopieren?


Problem2: Als ich versucht habe dies mit Hilfe von system("xcopy .."); zu machen, hab ich festgestellt dass meine variablen, wo der Pfad zu den Verzeichnissen gespeichert ist, in diesem Fall nicht funktionieren da die Konsole meine Variable nicht kennt. Oder gibts da Möglichkeit xcopy zu sagen dass das cpp-Variable ist?

Problem3:
Da ich die Ornerstruktur behalten möchte, soll Pfad wo die Daten gespeichert werden genauso sein wie das Zielpfad, nur mit einem anderem Buchstaben, als beispiel:

Code:
C:\Documents and Settings\Username\Desktop  ---wird kopiert in--> X:\Documents and Settings\Username\Desktop


Die Variablen hab ich rot-markiert.
Wie kann ich das "C:" am Anfang durch "X:" ersetzen ohne großen Aufwand?
Code:
system("xcopy /Y /i /e /s [COLOR="Red"]desktop[/COLOR]\" \"X:\\[COLOR="red"]desktop[/COLOR]\\"");

Währe nicht schlecht wenn ihr in demm Fall dass Ihr Vorschläge macht, auch gleich ein kleines Beispiel macht, denn so ist es für mich einfacher zu verstehen, hab nicht viel Erfahrung mit C++.

Dabke im Voraus.
 
Zurück
Oben