1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Batch - Über echo Datei erstellen

Discussion in 'Programmieren' started by Chickenmarkus, Apr 27, 2009.

Thread Status:
Not open for further replies.
  1. Halli Hallo!

    So wirklich Programmieren ist Batch ja nicht, trotzdem mal mit hier rein, weil's auch schon mehrere davon gibt.

    Ich Möchte über eine kleine simple Batch-Datei eine Start-Routine eines Programms, was noch 'n Parameter braucht, in Autostart erstellen:
    Code:
    echo programmpfad\start.exe -s > %AllUsersProfile%\Startmenü\Programme\Autostart\Start.bat
    Das funktioniert aber nicht. Starte ich es im CMD, sehe ich, dass es folgendes ausführt:
    Code:
    echo programmpfad\start.exe -s und Einstellungen\All Users\Startmenü\Programme\Autostart\Start.bat > C:\Dokumente
    Damit erstellt er mir eine undefinierte Datei "Dokumente" auf C: mit dem Inhalt "programmpfad\start.exe -s und Einstellungen\All Users\Startmenü\Programme\Autostart\ShutDown.bat", was mir natürlich nicht hilft.

    Aus irgendeinem Grund modelt er mir den ersten Teil des %AllUsersProfile% hinten dran und entstellt so natürlich den Sinn.
    Warum macht er das und wie unterbinde ich das?

    Tschüss Markus
     
    Last edited: Apr 27, 2009
  2. VB-Coder

    VB-Coder Megabyte

    Versuch mal den Pfad in " " zu setzen.
    Wozu dient der Parameter -s bei der start.exe eigentlich ? Nurmal aus reiner Neugier gefragt.
    Code:
    echo programmpfad\start.exe -s > "%AllUsersProfile%\Startmenü\Programme\Autostart\Start.bat"
     
  3. Gänsefüßel hab ich schon probiert. Gleiches Resultat der Verschiebung, nur mit zwei Gänsefüßeln mehr in der ungewollten Datei.

    Das -s steht dafür, dass mir das Programm die Netzwerktreiber mit lädt und nicht denkt, es müsse nur auf dem lokalem PC arbeiten. ;)
     
    Last edited: Apr 27, 2009
  4. Urs2

    Urs2 Megabyte

    Batch ist DAS Lernprogramm für alle schlaueren Programme > dort lernt man, dass ein falscher Buchstabe oder Befehl...
    ...alles missraten lässt... und das ziemlich gefahr- und mühelos...

    Warum verwendest Du "Echo"? > Das zeigt den Befehl in der Konsole an, tut sonst aber nichts...

    Der Befehl ist >>>
    C:\DeinPfadUndDateiName /Parameter

    Je nachdem auch >>>
    "DeinPfadUndDateiName /Parameter" .... in Anführungszeichen setzen
    oder >>>
    "DeinPfadUndDateiname" /Parameter
    oder >>>
    DeinPfadUndDateiName "/Parameter"
    ...oder sonst eine Variante...

    Ausprobieren, was die Batch und Dein Programm akzeptieren können....

    Gruss Urs
     
  5. Hascheff

    Hascheff Moderator

    Hallo,
    wie wäre es mit dem Code?
    Code:
    cd %AllUsersProfile%
    cd Startmenü\Programme\Autostart
    echo programmpfad\start.exe -s > Start.bat
    cd \
     
  6. @Urs2
    Hast im Prinzip recht, aber echo kann auch noch viel mehr. ;)
    Ich nutze nun grad "eine 2te Datei erzeugen, ergänzen", ungefähr aus der Mitte von http://www.libe.net/themen/BATch-Befehle.php
    Ergänze ich da meinen Pfad direkt nach dem echo zu "programmpfad\start.exe -s", habe ich in der neu erstelen Batch halt noch zwei Gänsefüßel mehr.


    @Hascheff
    Hab's mal probiert. Funktioniert schon weiter, indem es mir nun die richtige Datei erstellt, aber noch im allgemeinen AllUser-Ordner.
    "cd Startmenü\Programme\Autostart" findet er dann nicht. Noch weiter auseinander genommen und es scheitert am "cd Startmenü".
    Und siehe da, es kann nur an etwas liegen, was ich immer unbeachtet hab lassen. Egal wann, wie und in welcher Kombination "Startmenü" in der Batch auftaucht, es wird immer "Startmen³" ausgeführt, obwohl er das "ü" in der direkten Eingabe im CMD ja akzeptiert.

    Das wird wahrscheinlich auch für den Misserfolg des aller ersten Codes gesorgt haben.
    Aber wieso kommt Batch net mit Umlauten klar und wie verklicker ich ihm das?

    EDIT:
    Weder "chcp 1252" noch "chcp 850" helfen. Mit Codepage 850 verweigert's mir dann sogar auch im CMD das ü.
     
    Last edited: Apr 28, 2009
  7. Hascheff

    Hascheff Moderator

    Das glaub ich nicht. Da waren eindeutig die Leerzeichen in "Dokumente und Einstellungen" schuld.

    Gestern hab ich auch direkt in der Eingabeaufforderung getestet. Diesmal habe ich eine Batch erstellt.

    1. Test: einfach "dir > test.txt" im richtigen Ordner als Batch. Damit man das ü sieht, muss man beim Öffnen von Test.txt als Zeichensatz ASCII wählen. (heißt in meinem Editor DOS)

    2. Test: Vor dir > test.txt noch "cd startmenü" eingefügt. Beim ersten Speichern als Zeichensatz "Standard" gelassen. (Ist unter Windows ja ANSI)
    Es kam keine Test.txt, also die Batch brach mit Fehler ab.
    Jetzt speicherte ich mit "DOS" also ASCII als Zeichensatz, im Startmenü entstand eine Test.txt.

    Lange Rede, kurzer Sinn: du musst beim Speichern der Batch den ASCII-Zeichensatz wählen.

    Gruß, Hascheff
     
  8. Schön, eine Lösung. Wenn ich sie jetzt noch verstehen würde. :o

    Wie mit ASCII speichern?
    Chcp 1252 und 850 zum Umstellen innerhalb der Batch haben bei mir ja nicht geholfen.
    Aber sie direkt mit ASCII-Code zu speichern, wüsste ich jetzt nicht, wie ich das anstellen soll. Finde im Windoof-Editor auch keine Einstellung, wo ich das iwi einstellen könnte.
     
  9. TheD0CT0R

    TheD0CT0R Dr. h.c. Mod

    Im Windows-eigenen Editor kannst du beim Speichern unter... die Codierung einstellen.
     
  10. Ah, gefunden.
    Aber alles (Unicode, Unicode Big Endian, UTF 8) ausprobiert und ich bekomme schon beim "echo" iwas vonwegen Befehl falsch geschreiben.
     
  11. Urs2

    Urs2 Megabyte

    Hattest Du denn schon versucht, in der Batch und in der Konsole, den Befehl ohne das "Echo" einzugeben?
    Mit dem Aufruf des Programmes und dann ">" gibst Du die Ausgabe in eine Datei ja schon vor.

    Sind denn die Parameter auch genau so, wie "start.exe" diese haben will?
    Was ist das überhaupt für ein geheimnisvolles Programm?

    Was "echo" ausser der Anzeige sonst noch bewirken sollte, habe ich nicht begriffen...

    Gruss Urs
     
  12. Lasse ich das "echo" weg, dann schreibt mir das Programm SEINE Ausgabe in die neu erstellte Datei. Ich möchte aber wie in dem vorher von mir gepostetem Link direkt "programmpfad\start.exe -s" in der Datei stehen haben.
    Probiere einfach mal "help > Test.txt" und "echo help > Text.txt" aus, und du wirst den Unterschied sehen. ;)

    Es bleibt also immer noch das Problem des "ü" bzw. des Abspeichern mit richtiger Codierung sowie das ursprüngliche mit dem Verschieben der Befehlszeile.
     
  13. Urs2

    Urs2 Megabyte

    ...war mir bekannt !
    Wieso denn der ganze Zirkus? Gib das ein >
    echo programmpfad\start.exe /-s > test.txt
    ...eine 2. Batchzeile, nach dem Aufruf der ominösen start.exe, kostet ja nicht die Welt...

    Mit den Umlauten... schreibe ae... und gib Dich mit dem zufrieden, was möglich ist.
    Die Ego-Patrioten, die über die Umlaute in den Website-Adressen gejubelt hatten, sind jetzt wohl auch wieder nüchterner geworden.

    Wenn ich jetzt wieder falsch liegen sollte... Frohe Weihnachten...

    Gruss Urs
     
  14. Bin gerne für Alternativen offen, aber was wäre denn da die zweite Batch-Zeile?

    Ich habe Startmenü nicht mit "ü" geschrieben, das war der liebe Bill Gates. ;)
    Und da er uns das nunmal so aufgezwungen hat, werden wir auch damit leben müssen. :mad:

    Ich habe so das blöde Gefühl, das wir bissl aneinander vorbeireden.

    Gib am besten mal gleich die "ganze" Batch, wie du sie machen würde. Vllt. offenbaren sich da ja unsere Differenzen in der Vorstellung.
     
    Last edited: Apr 29, 2009
  15. Hascheff

    Hascheff Moderator

    Hallo,
    @ Urs: Der TO muss uns nicht erzählen, welches Programm im Autostart-Ordner installiert werden soll. Das hat mit dem Problem nichts zu tun.

    Im Windows-Editor kannst du <Alt>+0129 (auf dem Nummernblock) eingeben, um das ü zu erzeugen. Es wird nicht angezeigt, aber es wird der Code 129 gespeichert und das ist im ASCII-Code das ü.
    Unicode ist was anderes, da stehen immer zwei Byte für ein Zeichen.

    Falls du die Art der Code-Eingabe nicht kennst, <Alt>+0129 bedeutet, dass die Alt-Taste gehalten wird, während die folgenden Ziffern hintereinander auf dem Nummernblock getippt werden. Die Null muss mitgetippt werden.
     
  16. VB-Coder

    VB-Coder Megabyte

    Meine DOS Karriere ist zwar schon etwas her, aber dennoch meine ich mich an eine Zeichenbeschränkung 8.3 zu erinnern. Sprich ein Pfad durfte nicht länger wie 8 Zeichen + 3 Zeichen für die Endung sein. Aus Programme wurde dann Progra~1 etc.

    Warum macht man sich dieses Phänomän nicht zu nutzen und umgeht damit die Sonderzeichenbeschränkung ? Sprich aus Startmenü wird im Pfad einfach Startm~1

    Sollte funktionieren.
     
  17. kazhar

    kazhar Viertel Gigabyte

    start -> ausf&#252;hren -> cmd -> edit start.bat

    wenn man .bat mit notepad o.&#228;. schreibt werden sonderzeichen (wie z.b. das &#252;) verst&#252;mmelt. dann steht "in wirklichkeit" (also in der konsole) foldendes in der datei:
    echo programmpfad\start.exe -s > "&#37;AllUsersProfile%\Startmen&#179;\Programme\...
     
  18. VB-Coder

    VB-Coder Megabyte

    Es funktioniert auch mit dem Windows internen Wordpad (write.exe). Hier muss man nur als Dateityp "Textdokument - MS-DOS-Format" auswählen. Funktioniert übrigens auch mit jedem alternativen Editor der in der Lage ist im ASCII Format zu speichern. Das aber nurnochmal am Rande.

    Meistens sind es die einfachsten Dinge die unser Leben komplizieren. Gut das wir kazhar haben ;)
     
  19. kazhar

    kazhar Viertel Gigabyte

    du kannst es ja auch mit open office schreiben :D

    f&#252;r die einsame zeile tuts wirklich auch edit...
     
  20. Juhuu, das mit dem "ü" ist endlich geklärt, und ich habe grad zwei Sachen gelernt. :bet:
    Sowohl Alt+0129 als auch edit funktioniert prima. Jetzt wird das "ü" immer korrekt ausgeführt.


    Hatte aber leider wirklich nichts mit dem urspünglichem Problem zu tun.
    Das Verschieben (diesmal halt nur mir richtigem "ü"^^) findet immer noch statt: :mad:

    Aus
    Code:
    echo programmpfad\start.exe -s > %AllUsersProfile%\Startmenü\Programme\Autostart\Start.bat
    Wird immer noch
    Code:
    echo programmpfad\start.exe -s und Einstellungen\All Users\Startmenü\Programme\Autostart\Start.bat > C:\Dokumente
     
Thread Status:
Not open for further replies.

Share This Page