2017-01-27 10 views
1

ok einfach machen möge ich eine Batch-Skript machen, die:Batch-Skript zu Batch-Skript

  1. Macht Export-Ordner auf den Desktop
  2. von neuen (wie in nicht von irgendwo kopiert) einen Batch-Skript macht in Dieser Ordner listet den Inhalt dieses Ordners auf, nachdem er vom Benutzer ausgefüllt und auf dem Desktop gespeichert wurde.

das Problem, das ich in laufen, ist, ich versuche Echo zu verwenden, um den beabsichtigten neuen Skripttext aus dem ursprünglichen Batch-Datei in die neue so zu kopieren:

@echo off 
mkdir "C:\Users\%username%\Desktop\Export" 
echo dir "C:\Users\%username%\Desktop\Export" /W /A:-H /B > "C:\Users\%username%\Desktop\Readout.txt" > "C:\Users\%username%\Desktop\Export\Directoty_List.bat" 

das Problem ist, dass der echo-Befehl das ">" als das Ende der Anweisung sieht und den ersten Teil in eine Desktop-Textdatei schreibt, aber ich möchte, dass es das 2. ">" als solches sieht. Wie arbeite ich daran?

Danke

+0

Flucht mit einem caret verwenden können, ^> – Richard

+1

Mögliche Duplikat [Stapel nicht ordnungsgemäß Speichern ] (http://stackoverflow.com/questions/41872223/batch-not-saving-properly) – aschipfl

Antwort

0

Wie @ Richard in den Kommentaren gesagt, können Sie die > mit einem carret Zeichen ^> entweichen kann. Die meisten Charaktere mit besonderer Bedeutung in cmd können mit dem carret geflüchtet werden, wenn Sie diese spezielle Bedeutung nicht verwenden möchten.
Normalerweise ist die goldene Regel: put alles zwischen doppelten Anführungszeichen. In doppelten Anführungszeichen sind auch die Zeichen mit besonderen Bedeutungen enthalten. Leider druckt die echo die Anführungszeichen auch, so dass dies in Ihrem Fall nicht wirklich helfen wird. Es ist jedoch erwähnenswert, dass Anführungszeichen helfen, Werte von Variablen mit Sonderzeichen zu setzen, Argumente mit Sonderzeichen zu übergeben, Pfade mit Sonderzeichen (Leerzeichen oder Klammern für z. B.) zu definieren, aber nicht mit echo.

Es gibt einen weiteren Rat, den ich geben möchte: Sie %userprofile% statt Angabe der gesamte Pfad C:\Users\%username%

@echo off 
mkdir "%userprofile%\Desktop\Export" 
echo dir "%userprofile%\Desktop\Export" /W /A:-H /B ^> "%userprofile%\Desktop\Readout.txt" > "%userprofile%\Desktop\Export\Directoty_List.bat" 
Verwandte Themen