2016-10-02 5 views
0

Ich habe eine Datei text.txt, die durch den folgenden Code geparst wird. Die Batchdatei funktioniert, aber ich möchte, dass die Ausgabe eine neue Datei schreibt (oder das Original ändert, je nachdem, was einfacher ist). Derzeit wird die Ausgabe nur im Befehlsfenster angezeigt.senden Batch-Verarbeitung in eine Datei

@echo off 
setlocal EnableDelayedExpansion 

set LF=^ 

%var1% 
%var2% 

set "EOL=!LF!" & set "EOL2=!LF!" 

for /F %%a in (test.txt) do (
    if %%a equ PROP-SUMMARY set "EOL=!LF!" 
    set /P "=%%a!EOL!" < NUL 
    set "EOL0=!EOL!" & set "EOL=!EOL2!" & set "EOL2=!EOL0!" 
    if %%a equ PROP-VALUES set "EOL=," 
) 

Dies ist test.txt

4.12 
0 
1 
1 
21 
PROP-VALUES 
625 
4.12 
945 
3.64 
PROP-SUMMARY 
400 
400 
Thickness 

Dies ist new.txt

4.12 
0 
1 
1 
21 
PROP-VALUES 
625,4.12 
945,3.64 
PROP-SUMMARY 
400 
400 
Thickness 
+0

Was '% var1% ist' und '% var2%' zum? – aschipfl

+0

sie sind Platzhalter. Wenn sie entfernt werden, funktioniert das Skript nicht. – RyCar66

+0

Sie können sie entfernen! Sie müssen nur sicherstellen, dass 'set LF = ^' von zwei leeren Zeilen gefolgt wird, das ist alles ... – aschipfl

Antwort

0

cmd.exe >> „% Systemdrive%/Users /% username% /Desktop/test.txt "

Dies überschreibt te nicht st.txt, aber füge hinzu. es test.txt tun

cmd.exe zu machen überschreiben> "% Systemdrive%/Users /% username%/Desktop/test.txt"