
Ich versuche, das Skript zu ändern. Anstatt eine Zeile hinzuzufügen , möchte ich dies für alle Dateien im Verzeichnis file.txt
tun . Dieses Skript entfernt neue Zeilen und fügt zur Trennung ein Komma hinzu.*.txt
Jede Hilfe ist willkommen.
@echo off
setlocal EnableDelayedExpansion
set "line="
for /F "delims=" %%a in (inputfile.txt) do set "line=!line!,%%a"
echo !line:~1!>>outputfile.txt
Meine Eingabedatei, die ich verwenden möchte, ist die folgende CSV 2019-05-29 08:03:48, NeigungA, 3.420, 19,9, 0,5017, 0,6903 2019-05-29 09:03:48, NeigungB, 3.420, 19,9, 0,3017, 0,6903 2019-05-29 08:03:48, NeigungC, 3.420, 19,9, 0,5017, 0,6903 2019-05-29 09:03:48, NeigungD, 3.420, 19,9, 0,3017, 0,6903 2019-05-29 08:03:48, NeigungE, 3.420, 19,9, 0,5017, 0,6903
Antwort1
Danke für die Klarstellung! Dies sollte Sie in die richtige Richtung führen:
@echo off
set "dir=C:\Your\Directory"
set "dirs=C:\Your\Output\Folder"
setlocal enabledelayedexpansion
for /r "%dir%" %%A in (*.txt) do (
set "new=%%~nA"
if exist "%dirs%\!new!.txt" del /f /q "%dirs%\!new!.txt"
for /f %%B in (%%A) do (
echo|set /p="%%B,"
) >> "%dirs%\!new!.txt"
)
Ich empfehle dringend, einen anderen Ausgabeordner zu haben, es sei denn, Sie möchten Ihre Quell-TXT-Dateien überschreiben – also habe ich mir Folgendes ausgedacht. Die erste Schleife durchläuft alle Ihre TXT-Dateien im angegebenen Verzeichnis ( for /r %dir%
) und legt den Namen jeder dieser Dateien als Variable fest new
; unmittelbar danach wird geprüft, ob diese new
TXT-Datei in Ihrem Ausgabeverzeichnis vorhanden ist, und sie gelöscht – das ist ein entscheidender Schritt, da wir alle Parameter in einer einzigen Zeile >>
ausgeben müssen, da alle vorherigen Einträge überschrieben werden. Wenn Sie keine potenziellen TXT-Dateien löschen, die durch vorheriges Ausführen des Skripts erstellt wurden, werden die Einträge in der Zeile dupliziert. Nachdem dies erledigt ist, haben wir eine verschachtelte For-Schleife, die die Informationen aus der Textdatei nimmt und verwendet, um sie alle mit einem in dieselbe Zeile zu setzen . Bei diesem grundlegenden Skript wird es einen Nachspann geben, den Sie vielleicht loswerden möchten oder auch nicht – andernfalls glaube ich, dass dies das gewünschte Ergebnis liefert.%%B
>
new
echo|set /p
%%B
,
,