Unter cmd
Gibt es ein Fenster, das dem Befehl posix entspricht? cat
?
cat ganz alleine keine Dateinamen, keine Schalter. Ich will nur etwas das kopiert stdin nach stdout bis es auf EOF trifft.
Es ist kein schweres Programm zum Schreiben, aber wird es von Windows bereitgestellt?
Die Antwort ist nicht unbedingt ein einzelnes Wort und ist definitiv kein Typ.
echo test | type
bekommt mir nur eine fehlermeldung
echo test | type con
wartet darauf, dass ich ein paar Sachen eingebe
echo test | more
ist nah dran, aber "more" bleibt nach einem screenfull stehen.
Ich möchte dies, um ein Programm auszuführen, das sich anders verhält, wenn sich stdout in einer Pipe befindet. damit ich die ausgabe sehen kann.
Antworten:
someprog | findstr x*
oder ein anderes einzelnes Zeichen, gefolgt von einem Sternchen, kopiert alle Zeilen von der Pipe stdin nach stdout. Insbesondere wird jede Zeile kopiert, wenn sie ein enthältx
oder nicht, was Sie leicht sehen können, ist immer wahr. Windowsfindstr
entspricht in etwa Unixgrep
aber mit nervigen kleinen syntaxunterschieden.findstr
ist für Text gedacht und ich bin mir nicht sicher (und habe es nicht getestet), ob es für Binärdaten mit wenigen oder keinen [CR] -LFs und daher sehr langen sichtbaren Linien funktioniert. Unixcat
ohne Argumente funktioniert für Binärdateien, aber Ihr angegebener Anwendungsfall sind Programme, die ihre Ausgabe für Pipes ändern, und meiner Erfahrung nach geschieht dies nur bei der Textausgabe - und normalerweise sind es keine Pipes als solche, sondern NON-tty / NON-console /. etc und damit kann ich gleich gut testen mitsomeprog >temp; cat temp
unter Unix oder& type
unter Windows, sofern das Programm nicht interaktiv ist und ich eine Ausgabe sehen muss, bevor ich die nächste eingabe.quelle
x*
"null oder mehr x" das funktioniert. Vielen Dank.findstr "^"
scheint auch zu funktionieren. aber so oder so bleibt findstr hängen, wenn die letzte Zeile nicht mit CRLF endet. Ich vermute, das ist eine undokumentierte Funktion von findstrfind /v ""
das scheint zu tun was ich will. Das muss auch ein Fehler sein. aber zumindest hängt es nicht.more > con
funktioniert auch - wieder undokumentiert, aber wahrscheinlich kein Fehler.find/v ""
ist eine noch klügere Möglichkeit, die ich verpasst habe. Vor dem Posten habe ich getestetfindstr
mit nicht abgeschlossener letzter Zeile und es funktionierte auf (meinem) Vista - aber jetzt hast du mich dazu gebracht, auf (meinem) Win7 noch einmal zu testen und das hängt, also ist dies möglicherweise nicht nur eine undokumentierte Funktion, sondern eine undokumentierte Verbesserung!findstr "^"
hängt nicht mehr ohne nachstehenden Zeilenumbruch und anscheinend wurde sogar die neueste Win7-Version gepatcht;find /v ""
funktioniert immer noch, ist aber sicher nicht intuitiv.Das nächstgelegene Windows-Äquivalent zu * nix
cat
ist derTYPE
Befehl. Beachten Sie, dass auf * nix-Systemencat
ist eigentlich ein separates Programm, während Windows 'TYPE
ist eigentlich Teil des Befehlszeileninterpreters.quelle
echo test | type
- nein scheint nicht zu funktionieren, wenn meine Frage unklar war, bitte verbessern Sie sie.type
überschneidet sich mitcat
in der Funktionalität, aber anders alscat
es kann nicht auslesen stdin , und danach ist das OP.ECHO sollte ähnlich wie CAT funktionieren.
Echo Text in eine Datei
Die allgemeine Syntax lautet
oder wenn Sie zusätzliche Leerzeichen vermeiden möchten: Echo Etwas mehr Text & gt; Dateiname.txt
quelle
cat
Liest eine Datei oder den Inhalt eines Streams in den Standard (z. B. ein Terminalfenster).echo
druckt nur Text in die Standardausgabe. Das Beispiel, das Sie angegeben haben, verwendet den Befehlszeileninterpreter, um die Ausgabe eines Programms in eine Datei zu senden.