2016-12-06 5 views
1

Ich habe ein seltsames Problem, das eine Frage von mir sein muss, etwas falsch zu machen.Windows Redirect-Fehler funktioniert nicht mit append

Bei Verwendung von Windows-Befehlszeilenfunktionen weiß ich, dass Fehlerausgabe mit 2> nul umgeleitet werden kann, aber es funktioniert nicht mit dem folgenden Befehl, wenn ich versuche, Ausgabe an eine Datei anzufügen, die absichtlich nur gelesen wird.

(echo dataExample) >> C:\filename.txt 2> nul 

Ich bin immer noch den Zugang zu sehen, wird Nachricht verweigert, dass ich dachte

+1

Sie leiten Ausgabe von dem Befehl, der Ausgabe von der Anweisung des Ausgangs nicht leitet! – Compo

Antwort

2

Ihre Befehlszeilen leiten Fehlerausgabe des Befehls echo zu Gerät NUL NUL umgeleitet würde, das als dieser Befehl nutzlos ist nicht etwas auf STDERR drucken.

die Befehlszeile zu verwenden ist:

(echo dataExample>>C:\filename.txt) 2>nul 

dataExample ausgegeben durch die echoC:\filename.txt Datei angehängt wird. Wenn die Zieltextdatei schreibgeschützt ist, gibt der Windows-Befehlsprozessor eine Fehlernachricht an STDERR aus. Da jede Ausgabe an STDERR bei Ausführung eines Befehls innerhalb des mit den runden Klammern definierten Befehlsblocks an Gerät NUL umgeleitet wird, wird diese Fehlermeldung mit dieser Befehlszeile unterdrückt.

Hinweis: Ein Raum zwischen dataExample und >> wird auch in die Textdatei geschrieben. Wenn in der Textdatei kein Leerzeichen gewünscht wird, geben Sie kein Leerzeichen links von >> an. Ein Leerzeichen rechts von >> spielt keine Rolle.

+1

Lassen Sie mich vorschlagen, den 'echo' Teil in Klammern zu setzen, wie' ((echo dataBeispiel) >> C: \ filename.txt) 2> nul', also sind Leerzeichen vor '>>' kein Problem nicht mehr; oder besser noch allgemeiner: '2> nul (>>" C: \ filename.txt "echo dataBeispiel)' – aschipfl

Verwandte Themen