sascha76er
Goto Top

Bestimmte Zeichen in CSV-Datei mit einer Batch ändern

Hallo,

ich möchte gerne mit einer Batchdatei " in einer bestimmten CSV löschen.
Ebenfalls möchte die Zeichenfolge yxcv durch ein ; ersetzen.

Kann man dies irgendwie mit einer Batchdatei realisieren?

Vorab vielen Dank für jegliche Hilfe.

Liebe Grüße

Sascha

Content-ID: 187023

Url: https://administrator.de/contentid/187023

Ausgedruckt am: 20.11.2024 um 01:11 Uhr

TsukiSan
TsukiSan 25.06.2012 aktualisiert um 17:23:12 Uhr
Goto Top
Hallo Sascha,

die Bätschler ziehen mir sicher gleich die Ohren lang face-wink
Aber wenn VBS auch dienen könnte, dann hätte ich folgenden Schnipsel für dich:
Option Explicit

Dim Pfad
Dim PfadRepl , tempPf
Dim SuchText
Dim ReplaceText
dim FSO , MeineDatei
Dim MeineDateiNeu
Dim objDialog , intResult


Pfad = BrowseForFile("C:\", "CSV-Dateien (.csv)|*.csv|All Files|*.*")  

If Pfad = "" Then  
	Wscript.Echo "Keine Datei ausgewählt. Script wird beendet"  
	Wscript.Quit
End If

PfadRepl = Split(Pfad , "\")  
tempPf = Split(PfadRepl(Ubound(PfadRepl)),".")  
tempPf(Ubound(tempPF) - 1) = tempPf(Ubound(tempPF) - 1) & "_Replaced_"  
tempPf = Join(tempPF , ".")  
PfadRepl(Ubound(PfadRepl)) = tempPf
PfadRepl = Join(PfadRepl , "\")  


Function BrowseForFile(pstrPath, pstrFilter)
	Set objDialog = CreateObject("UserAccounts.CommonDialog")  
	objDialog.Filter = pstrFilter
	objDialog.InitialDir = pstrPath
	objDialog.Flags = &H80000 + &H4 + &H8
	intResult = objDialog.ShowOpen
	BrowseForFile = objDialog.FileName
End Function

Set objDialog = Nothing

SuchText = InputBox("Bitte Suchtext eingeben." , "Suchtext...","Suche")  
ReplaceText = InputBox("Bitte ErsetzenText eingeben." , "ErstzenText...","Ersetze")  

Ersetzen

Private Sub Ersetzen()
        
	On Error Resume next
	
	Set FSO = createobject("Scripting.FileSystemObject")  

	Set MeineDatei = FSO.OpenTextFile(Pfad, 1)
	MeineDateiNeu = Replace(MeineDatei.ReadAll,SuchText,ReplaceText)

	MeineDatei.Close

	Set MeineDatei = FSO.CreateTextFile(PfadRepl,True).Write(MeineDateiNeu)
	MeineDatei.Close

	Set FSO = Nothing
	Set MeineDatei = Nothing

End Sub

Gruss
Tsuki
bastla
bastla 25.06.2012 aktualisiert um 23:02:53 Uhr
Goto Top
Hallo Tsuki!

Die Ohren möchte ich Dir zwar nicht langziehen, aber einen Hinweis auf auf so schöne Methoden des "FileSystemObjects" wie etwa "GetBaseName", "GetExtensionName" oder "GetParentFolderName" muss ich doch los werden ... face-wink

Grüße
bastla
TsukiSan
TsukiSan 25.06.2012 um 23:37:31 Uhr
Goto Top
Hallo bastla,

ja, da ist noch ein wenig Geschmiere drinnen face-wink
Aber mal sehen, was der TO dazu meint.
Er wollte es ja in Batch face-wink

Danke und viele Grüße

Tsuki