Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Eine .txt vom Dateinamen unabhängig in .csv überführen

Frage Entwicklung Batch & Shell

Mitglied: cherti

cherti (Level 1) - Jetzt verbinden

02.12.2009 um 13:55 Uhr, 3361 Aufrufe, 2 Kommentare

Hallo nochmals,

wie im anderen, zuvorigen Beitrag damals schon gepostet, funktioniert die Formatierung von *.txt zu *.csv mittels Batch prächtig. Der Befehl sieht momentan (nach den Verbesserungsvorschlägen von euch) wie folgt aus:

01.
@echo off 
02.
 
03.
set "Alt=%CD%\Messwerte2.txt" 
04.
set "Neu=%CD%\Messwerte2.csv" 
05.
 
06.
if exist "%Neu%" del "%Neu%" 
07.
 
08.
for /f "usebackq skip=1 tokens=2,4" %%i in ("%Alt%") do @echo %%i;%%j >>"%Neu%" 
09.
pause
Nun würde ich allerdings gerne noch eine Kleinigkeit ändern. Ich würde den genauen Dateinamen gerne durch eine allgemeine Auswahl ersetzen - also quasi *.txt anstatt Messwerte2.txt und diesen Namen dann aber auch gerne für die Benennung der .csv Datei verwenden.

also quasi xuuhoha9039.txt wird zu xuuhoha9039.csv und das im Idealfall gleich mit allen Datein des aktuellen Ordners (in dem sich die batch befindet) nach dem Muster des vorhandenen (oberen) Befehls.

Danke und freundliche Grüße
Joachim
Mitglied: bastla
02.12.2009 um 14:21 Uhr
Hallo cherti!

Eigentlich müsstest Du nur ein Schleifchen drum rum wickeln - das geht (ungetestet) auch ohne explizite Zuweisung an die Variablen %Alt% und %Neu%:
01.
@echo off 
02.
for %%a in (*.txt) do ( 
03.
    if exist "%%~dpna.csv" del "%%~dpna.csv"  
04.
    for /f "usebackq skip=1 tokens=2,4" %%i in ("%%a") do echo %%i;%%j >>"%%~dpna.csv" 
05.
06.
pause
Anstelle von "%%~dpna" sollte in diesem Fall auch "%%~na" genügen, aber die vollständige Angabe mit drive und path kann ja nicht schaden (und hilft, falls zB einmal nicht nur "*.txt", sondern etwa "D:\Ein bestimmter Ordner\*.txt" verarbeitet werden sollte).

Alternativ dazu ließe sich aber natürlich auch der ursprüngliche Batch als Unterprogramm verwenden:
01.
@echo off & setlocal 
02.
for %%a in (*.txt) do call :ProcessFile "%%a" 
03.
goto :eof 
04.
 
05.
:ProcessFile 
06.
set "Alt=%~1" 
07.
set "Neu=%~dpn1.csv" 
08.
 
09.
if exist "%Neu%" del "%Neu%" 
10.
 
11.
for /f "usebackq skip=1 tokens=2,4" %%i in ("%Alt%") do @echo %%i;%%j >>"%Neu%" 
12.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: cherti
04.12.2009 um 10:47 Uhr
also das funktioniert gar wunderprächtig ;)

auf so nen "%%~dpna.*" befehl muss man aber auch erstmal kommen ^^

hab mich für die obere variante entschieden.


danke dir.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Einen Teil eines Textpfades aus einer TXT per Batch entfernen!? (3)

Frage von kampen zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Server mit Netzwerkaussetzern (17)

Frage von SarekHL zum Thema Windows Server ...

Netzwerke
Vorschlag Hotelverkabelung (14)

Frage von FA-jka zum Thema Netzwerke ...