Anzeige

Am Puls von Microsoft

Anzeige

Wie erstelle ich eine Batchdatei mit echo type?

PeterBauerer

kennt sich schon aus
Hallo,
ich möchte per Batch-Datei eine weitere Batchdatei erstellen.
Hierzu schreibe ich in Batchdatei 1 Folgendes:

echo type "PfadEinesFilesDessenInhaltInDieZwischenablageSoll" | clip > ZielpfadBatchdatei2.cmd


In Batchdatei2 soll der Inhalt folgendermaßen sein:
type "PfadEinesFilesDessenInhaltInDieZwischenablageSoll" | clip



Nun mein Problem: Durch den Teil Pipe-Zeichen und clip ist die Batchdatei2 vollständig leer. Lasse ich das Pipe-Zeichen und das clip weg, dann steht zumindest der Pfad in der Batchdatei2. Es muss doch möglich sein, dass das | clip samt dem vorigen Pfad im Batchfile landet, oder? Verzweifle nach stundenlangem Rumprobieren daran.

Was ich nicht brauche: weitere Anführungszeichen im Batchdatei2-Inhalt; diese würden den Befehl unbrauchbar machen bzw. bewirkrne, dass er nicht funktioniert.


Wer weiß Rat und kann mir sagen, wie meine Batchdatei2 so, wie ich es mir vorstelle, wird (siehe fett formatierte Nennung oben)?
 
Anzeige
Was ist eigentlich das Ziel der Übung, in welchem Kontext muss man das Ergebnis sehen, was soll erreicht werden? Ginge auch Powershell? Oder eine andere Skriptsprache?
 
Versetz das hintere Anführungszeichen mal hinter clip.

Entweder ich bin zu blöd oder deine Idee funktioniert nicht. Wenn ich die resultierende Datei doppelklicke, dann kopiert sich (trotz clip) nichts in die Zwischenablage. Vor und nach dem Clip darf also offenbar kein " stehen.

Hat sonst wer eine Idee?
Die PowerShell kommt nicht infrage, ich erlerne sie irgendwann, aber nicht hierfür.
 
Nochmal:
Was ist eigentlich das Ziel der Übung, in welchem Kontext muss man das Ergebnis sehen, was soll erreicht werden? Ginge auch Powershell? Oder eine andere Skriptsprache?

Wenn Zwischenablage, dann brauchst du keine Zieldatei, ausser, du willst den Inhalt der angeklickten Datei in eine andere Datei kopieren, was keine Sinn für mich ergibt, weil es den ja schon gibt, deswegen meine Frage, die bislang unbeantwortet ist.
 
:)

Die werden alle maschinell übersetzt. Normalerweise klappt das sogar recht gut, aber, manche Sachen sind halt einfach daneben..
 
Da steht aber auch im englisch so da
To display a pipe (|) or redirection character (< or >) when you are using echo, use a caret (^) immediately before the pipe or redirection character (for example, ^|, ^>, or ^<). To display a caret, type two carets in succession (^^).

Was Übersetzungen angeht, geht so, also so eine Doku sollte man dann wirklich besser im englischen Original lesen:
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/echo

^ ist eine art Escape-Character für Sonderzeichen, sonst wird das Zeichen als Befehl angenommen.

Schlauer bin ich dropsdem nicht. Das liegt wohl daran, dass - das Bsp von oben - schon in der Zeile echo, type und clip drei DOS-Befehle sich finden und kein Zusammenspiel = Ergebnis entsteht. Das wäre in einer anderen Skriptsprache schon erledigt.
 
Anzeige
Oben