2017-02-22 6 views
1

Ich habe eine Textdatei, wo ich die erste Zeile von Daten hin und wieder löschen muss. Ich habe ein Batch-Skript, das dies für mich tut, aber aus irgendeinem Grund fügt es einen Platz am Ende jeder Datenzeile.xcopy Textdatei fügt Speicherplatz zu Daten hinzu - CMD Batchdatei

Nach vielen Schleifen, dies wächst die Datendatei stark (10k + Zeilen von Daten, die einen Platz mit jedem xcopy) und ich versuche herauszufinden, müssen die Datenzeilen wie es ist, ohne den zusätzlichen Platz am Ende hinzufügen .

Hier ist mein Skript:

for /f "skip=1 delims=*" %%a in (C:\Users\User1\Documents\DataSources\AccountData.csv) do (
    echo %%a >>C:\Users\User1\Documents\DataSources\newfile.txt  
) 

xcopy C:\Users\User1\Documents\DataSources\newfile.txt C:\Users\User\Documents\DataSources\AccountData.csv /y 

del C:\Users\User1\Documents\iMacros\DataSources\newfile.txt /f /q 

Irgendwelche Vorschläge? Vielen Dank!

Chris

+2

was, wenn Sie den Raum zwischen %% a und dem Operator >> entfernt? – dlatikay

+0

@dlatikay, ist richtig. Sie geben physikalisch ein Leerzeichen an die Datei zurück. Welches Compo hat mit seiner Antwort unten korrigiert. – Squashman

Antwort

1

Der schnelle Weg ist, es zu ändern:

for /f "skip=1 delims=*" %%a in (C:\Users\User1\Documents\DataSources\AccountData.csv) do (
    (echo %%a)>>C:\Users\User1\Documents\DataSources\newfile.txt  
) 

xcopy C:\Users\User1\Documents\DataSources\newfile.txt C:\Users\User\Documents\DataSources\AccountData.csv /y 

del C:\Users\User1\Documents\iMacros\DataSources\newfile.txt /f /q 
+1

ja. Es kann sich lohnen, eine oder zwei Zeilen hinzuzufügen, warum dies einen Unterschied macht – dlatikay

+0

@dlatikay, weil nur die Entfernung zwischen %% a und dem Operator >> ist nicht die Lösung. – Compo

+1

@dlatikay, entfernt den Raum in der Theorie das Problem zu beheben, aber es ist ein Gotcha beteiligt. Wenn Ihre Daten in einer Zahl enden, wird die Stapeldatei vermutlich zu einem anderen Dateistream weitergeleitet. Um das Problem zu beheben, fügen Sie den Befehl in Klammern ein. – Squashman

Verwandte Themen