Per Batch erste Zeile aus CSV Dateien löschen
Hallo zusammen!
Ich suche ein Batch Script, mit dem ich aus sämtlichen CSV Dateien in einem Unterordner die erste Zeile entfernen kann.
Das Script liegt also z.B. in C:\Ordner und entfernt aus allen CSV Dateien in C:\Ordner\Unterordner jeweils die erste Zeile und überschreibt diese dann einfach wieder.
Wäre super, wenn mir dabei jemand behilflich sein könnte.
Lieben Gruß
One
Ich suche ein Batch Script, mit dem ich aus sämtlichen CSV Dateien in einem Unterordner die erste Zeile entfernen kann.
Das Script liegt also z.B. in C:\Ordner und entfernt aus allen CSV Dateien in C:\Ordner\Unterordner jeweils die erste Zeile und überschreibt diese dann einfach wieder.
Wäre super, wenn mir dabei jemand behilflich sein könnte.
Lieben Gruß
One
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 296540
Url: https://administrator.de/contentid/296540
Ausgedruckt am: 24.11.2024 um 23:11 Uhr
15 Kommentare
Neuester Kommentar
nimm Powershell; Batch ist veraltet.
Was sich dann aber auch auf eine Zeile abkürzen lässt gci 'c:\Ordner\*.csv' -recurse | %{(gc $_.Fullname) | select -skip 1 | set-content $_.Fullname}
Das obige für eine Batch:
@echo off
powershell -Executionpolicy Bypass -Command "gci 'c:\Ordner\Unterordner\*.csv' -recurse | %%{(gc $_.Fullname) | select -skip 1 | set-content $_.Fullname}"
Moin sirOne,
auch ich rate zum Umstieg auf Powershell, wenn ihr es im Unternehmen einsetzen dürft.
Der Vollständigkeit halber zu den Syntaxfehlern beim obigen CMD-Batch-Schnipsel:
- Zeile 03: der Schalter /e beim more ist überflüssig, verursacht aber keinen Fehler.
- Zeile 04: der zweite Teil
Das verursacht den Fehler, denn der renameTo-Name beim REN darf keine Pfadangabe enthalten.
Ändere also, falls du den CMD-Batch verwendest, die Zeile 04 auf
(ungetestet, nur biooptische Grobdiagnose)
Grüße
Biber
[Edit] Upps, gerade hast du danach gefragt, da war ich am tippseln...[/Edit]
auch ich rate zum Umstieg auf Powershell, wenn ihr es im Unternehmen einsetzen dürft.
Der Vollständigkeit halber zu den Syntaxfehlern beim obigen CMD-Batch-Schnipsel:
- Zeile 03: der Schalter /e beim more ist überflüssig, verursacht aber keinen Fehler.
- Zeile 04: der zweite Teil
Ren "%%a.tmp" "%%a"
wird übersetzt zu Ren "C:\x\y\test1.csv.tmp" "C:\x\y\test1.csv"
Das verursacht den Fehler, denn der renameTo-Name beim REN darf keine Pfadangabe enthalten.
Ändere also, falls du den CMD-Batch verwendest, die Zeile 04 auf
del "%%a" && ren "%%a.tmp" "%%~na"
(ungetestet, nur biooptische Grobdiagnose)
Grüße
Biber
[Edit] Upps, gerade hast du danach gefragt, da war ich am tippseln...[/Edit]
OT:
Aber es läuft auf allen (Windows) Systemen.
Hier zumindest ist Powershell auf den meisten Rechnern nicht vorhanden.
Gerade bei so Sachen wie das hier kommen mit Lösungen in Powershell oft länger und/oder überdimensioniert vor (z.B. nutze Ich doch nicht Powershell nur um eine Datei umzubenennen).
Das ist so mein persönlicher Eindruck.
Richtig, aber in nahezu allen Netzwerken sollte man mittlerweile Systeme verwenden, die Powershell installiert haben (IMHO)
Gerade bei so Sachen wie das hier kommen mit Lösungen in Powershell oft länger und/oder überdimensioniert vor (z.B. nutze Ich doch nicht Powershell nur um eine Datei umzubenennen).
warum nicht, die Befehle die du in eine Batch setzt, kannst du in nahezu allen Fällen auch in Powershell verwenden. Hinzu kommt, dass Powershell einfacher zu schreiben/verstehen ist. Außerdem übt das, wenn man die Powershell irgendwann doch brauchen sollte.Das ist so mein persönlicher Eindruck.
Geht mir ähnlich Zitat von @miniversum:
Aber es läuft auf allen (Windows) Systemen.
Hier zumindest ist Powershell auf den meisten Rechnern nicht vorhanden.
Du verwendest noch Systeme älter als Vista X)?? Denn ab Vista ist es von Haus aus mit dabei.Aber es läuft auf allen (Windows) Systemen.
Hier zumindest ist Powershell auf den meisten Rechnern nicht vorhanden.
Selbst XP lässt sich damit nachrüsten.
Gerade bei so Sachen wie das hier kommen mit Lösungen in Powershell oft länger und/oder überdimensioniert vor (z.B. nutze Ich doch nicht Powershell nur um eine Datei umzubenennen).
Was soll hier im Thread nur umbenannt werden? Mit der Powershell geht alles endlich in the box ohne dauernd mit Umwegen und Zusatztools hantieren zu müssen, denn mit dem NET-Framework steht einem eine komplette Programmiersprache zur Verfügung (c#-Code kompilieren und ausführen kein Problem, GUI kein Problem, etc. pp).Wer nur auf Batch setzt hat in kommenden Windows Versionen verloren.
Nur wer noch keinen Kontakt mit der Powershell hatte meidet sie, ist wie immer... Wen einmal das PS-Fieber gepackt hat, der will keine Batch-Krücken mehr sehen.
Gruß jodel32
Ich habe nicht gesagt das es alte Windows Versionen sind. Ich sagte nur das es nicht vorhanden ist; absichtlich. Wir haben hier Rechner mit Mess- und Testsystemen. Da fahren wir eher die Politik nur das nötigste zu installieren. Deshalb haben wir auch Windows 8.1 ohne Powershell.
Das mit dem umbenennen wurde oben nicht erwähnt. Es war nur ein Beispiel einer einfachen Aufgabe für die ich Powershell zu überdimensioniert finde. Für andere Aufgaben die komplexer sind ist natürlich Powershell geeignetter oder VBS oder Python oder gleich ein Programm in C++.
Man wählt die Sprache nach den Bedürfnissen und nicht weil sie halt grade da ist.
Das mit dem umbenennen wurde oben nicht erwähnt. Es war nur ein Beispiel einer einfachen Aufgabe für die ich Powershell zu überdimensioniert finde. Für andere Aufgaben die komplexer sind ist natürlich Powershell geeignetter oder VBS oder Python oder gleich ein Programm in C++.
Man wählt die Sprache nach den Bedürfnissen und nicht weil sie halt grade da ist.
Es gibt Win 8.1 ohne Powershell?