Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1788to1792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Löschen von Zeilen in CMD-Dateien?

Löschen von Zeilen in CMD-Dateien?
31.10.2020 11:24:43
Zeilen
Hallo Leute,
wie kann ich bitte per VBA in einem Pfad D:\Daten\Projkete\Settings\ inklusive Unterverzeichnissen in allen Dateien mit der Dateiendung .cmd die Zeilen löschen in den als Wort / String dies "BA-SAR04" vorkommt?
Beste Grüße,
Sergej

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Löschen von Zeilen in CMD-Dateien?
31.10.2020 13:00:17
Zeilen
Hallo Sergej,
was ist eine CMD-Datei?
Und beim Pfad meintest du sicher "D:\Daten\Projekte\Settings\" und nicht D:\Daten\Projkete\Settings\"
Servus
AW: Löschen von Zeilen in CMD-Dateien?
31.10.2020 13:11:42
Zeilen
Zitat: was ist eine CMD-Datei?
eine Textdatei, die Befehlszeilen für den Commandinterpreter cmd.exe enthält. Auch Batch Dateien genannt.
AW: Löschen von Zeilen in CMD-Dateien?
31.10.2020 13:18:54
Zeilen
Hallo Ralf,
danke für deine Info. Batchdateien (*.bat) kenne ich natürlich, schon seit fast 30 Jahren. Aber "CMD"-Dateien habe ich noch nie gehört! Dass der Commandointerpreter ein eigenes Dateiformat hat war mir wirklich nicht bekannt. Hast du das Format schon mal verwendet? Und wenn ja, wie und wofür?
Servus
Anzeige
AW: Löschen von Zeilen in CMD-Dateien?
31.10.2020 13:28:43
Zeilen
nein, verwenden tue ich die nicht. aber es ist quasi der Nachfolger von .bat Und es sind nur Textdateien.
AW: Mercie vielmals! owt
31.10.2020 13:29:38
Herbert_Grom
,,,
AW: Löschen von Zeilen in CMD-Dateien?
01.11.2020 10:07:27
Zeilen
Hallo Sergej,
teste mal, ob nachfolgender Code Dein Anliegen schon korrekt umsetzt:
Code:
[Cc][+][-]

Option Explicit Const sSuch As String = "BA-SAR04" 'Const sPath = "D:\Daten\Projekte\Settings\" Const sPath As String = "C:\ControlApp\" Sub CheckFileStart() 'Durchforsten von gefilterten Dateien aus Ordner und Unterordner Dim iAnz As Long, sArr() As String, MsgTxt As String CheckFile iAnz, sArr, CreateObject("scripting.filesystemobject").GetFolder(sPath) If iAnz = 0 Then MsgTxt = "Es wurde keine entsprechende Datei gefunden!" Else MsgTxt = "Es wurde(n) " & iAnz & " Datei(en) gefunden und bearbeitet!" End If MsgBox MsgTxt, vbInformation, "Dateibearbeitung" End Sub Sub CheckFile(iAnz As Long, sArr, oPath As Object) Dim oFile As Object, oDir As Object, Obj As Variant Dim sFilename As String, sData As String, sArrZL() As String Dim iff As Integer, i As Long On Error Resume Next For Each oFile In oPath.Files 'Ordner durchsuchen If err = 0 Then With oFile err = 0 If .Name Like "*.cmd" Then 'Datei ausfiltern iff = FreeFile() Open .Path For Input As iff 'Datei öffnen sData = Input(LOF(iff), #iff) 'und Daten einlesen Close iff 'Datei schließen If InStr(sData, sSuch) > 0 Then 'Datei enthält das Suchwort, jetzt die Zeile rausnehmen Open .Path For Output As iff sArrZL = Split(sData, vbCrLf) 'Daten aufsplitten For i = 0 To UBound(sArrZL) If InStr(sArrZL(i), sSuch) = 0 Then Print #iff, sArrZL(i) End If Next i Close iff 'Datei schließen iAnz = iAnz + 1 End If End If End With End If Next For Each oDir In oPath.Subfolders 'Unterordner durchsuchen Obj = FileDateTime(oDir) CheckFile iAnz, sArr, oDir Next End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Löschen von Zeilen in CMD-Dateien?
01.11.2020 10:36:31
Zeilen
Einen wunderschönen guten Morgen Karl-Heinz,
wie immer funktioniert es perfekt. Vielen herzlichen Dank!
Ich hätte noch eine Frage. ;-)
Ist es bitte möglich durch eine zweite VBA-Routine die CMD-Datei an der bestimmter Stelle zu erweitern?
Es soll in allen CMD-Dateien nach "CH-ETT01" (akkn mehrfach in der Datei vorkommen) gesucht werden. Wenn die Zeile gefunden wird, dann soll diese Zeile nach unten kopiert werden und in der kopierter Zeile der Eintrag "CH-ETT01" durch "DE-WUP08" ersetzt werden.
Beste Grüße,
Sergej
AW: Löschen von Zeilen in CMD-Dateien?
01.11.2020 10:52:04
Zeilen
Hallo Sergej,
teste mal, ob's klappt:
Code:
[Cc][+][-]

Option Explicit Const sSuch As String = "CH-ETT01" Const sErsetz As String = "DE-WUP08" Const sPath As String = "D:&bsol;Daten&bsol;Projekte&bsol;Settings&bsol;" Sub CheckFileStart() 'Durchforsten von gefilterten Dateien aus Ordner und Unterordner Dim iAnz As Long, sArr() As String, MsgTxt As String CheckFile iAnz, sArr, CreateObject("scripting.filesystemobject").GetFolder(sPath) If iAnz = 0 Then MsgTxt = "Es wurde keine entsprechende Datei gefunden!" Else MsgTxt = "Es wurde(n) " & iAnz & " Datei(en) gefunden und bearbeitet!" End If MsgBox MsgTxt, vbInformation, "Dateibearbeitung" End Sub Sub CheckFile(iAnz As Long, sArr, oPath As Object) Dim oFile As Object, oDir As Object, Obj As Variant Dim sFilename As String, sData As String, sArrZL() As String Dim iff As Integer, i As Long, sErweiterung As String On Error Resume Next For Each oFile In oPath.Files 'Ordner durchsuchen If err = 0 Then With oFile err = 0 If .Name Like "*.cmd" Then 'Datei ausfiltern sErweiterung = "" iff = FreeFile() Open .Path For Input As iff 'Datei öffnen sData = Input(LOF(iff), #iff) 'und Daten einlesen Close iff 'Datei schließen If InStr(sData, sSuch) > 0 Then 'Datei enthält das Suchwort, jetzt die Zeile rausnehmen Open .Path For Output As iff sArrZL = Split(sData, vbCrLf) 'Daten aufsplitten For i = 0 To UBound(sArrZL) If InStr(sArrZL(i), sSuch) > 0 Then sErweiterung = sErweiterung _ & Replace(sArrZL(i), sSuch, sErsetz) & vbCrLf End If Print #iff, sArrZL(i) 'Daten in Datei schreiben Next i If sErweiterung <> "" Then sErweiterung = Left$(sErweiterung, Len(sErweiterung) - 1) Print #iff, sErweiterung 'Kopierte Texte unten dran End If Close iff 'Datei schließen iAnz = iAnz + 1 End If End If End With End If Next For Each oDir In oPath.Subfolders 'Unterordner durchsuchen Obj = FileDateTime(oDir) CheckFile iAnz, sArr, oDir Next End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Löschen von Zeilen in CMD-Dateien?
01.11.2020 11:17:06
Zeilen
Hallo Karl-Heinz,
ich habe es getestet, die Zeile ist kopiert und ersetzt. Nur die kopierte Zeile ist am Ende der Datei und nicht unterhalb "CH-ETT01" von kopiert worden.
Beste Grüße,
Sergej
AW: Löschen von Zeilen in CMD-Dateien?
01.11.2020 11:27:53
Zeilen
Na das lässt sich doch fix ändern:
Code:
[Cc][+][-]

Option Explicit Const sSuch As String = "CH-ETT01" Const sErsetz As String = "DE-WUP08" Const sPath As String = "D:&bsol;Daten&bsol;Projekte&bsol;Settings&bsol;" Sub CheckFileStart() 'Durchforsten von gefilterten Dateien aus Ordner und Unterordner Dim iAnz As Long, sArr() As String, MsgTxt As String CheckFile iAnz, sArr, CreateObject("scripting.filesystemobject").GetFolder(sPath) If iAnz = 0 Then MsgTxt = "Es wurde keine entsprechende Datei gefunden!" Else MsgTxt = "Es wurde(n) " & iAnz & " Datei(en) gefunden und bearbeitet!" End If MsgBox MsgTxt, vbInformation, "Dateibearbeitung" End Sub Sub CheckFile(iAnz As Long, sArr, oPath As Object) Dim oFile As Object, oDir As Object, Obj As Variant Dim sFilename As String, sData As String, sArrZL() As String Dim iff As Integer, i As Long On Error Resume Next For Each oFile In oPath.Files 'Ordner durchsuchen If err = 0 Then With oFile err = 0 If .Name Like "*.cmd" Then 'Datei ausfiltern iff = FreeFile() Open .Path For Input As iff 'Datei öffnen sData = Input(LOF(iff), #iff) 'und Daten einlesen Close iff 'Datei schließen If InStr(sData, sSuch) > 0 Then 'Datei enthält das Suchwort, jetzt die Zeile rausnehmen Open .Path For Output As iff sArrZL = Split(sData, vbCrLf) 'Daten aufsplitten For i = 0 To UBound(sArrZL) Print #iff, sArrZL(i) 'Daten in Datei schreiben If InStr(sArrZL(i), sSuch) > 0 Then Print #iff, Replace(sArrZL(i), sSuch, sErsetz) End If Next i Close iff 'Datei schließen iAnz = iAnz + 1 End If End If End With End If Next For Each oDir In oPath.Subfolders 'Unterordner durchsuchen Obj = FileDateTime(oDir) CheckFile iAnz, sArr, oDir Next End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Löschen von Zeilen in CMD-Dateien?
01.11.2020 15:42:53
Zeilen
Hallo Karl-Heinz,
großartig. Vielen herzlichen Dank!
Beste Grüße,
Sergej

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige