silvereye
Goto Top

Suchen und Ersetzen von zwei Dingen für mehrere Dateien in einem Ordner mit dem Tool Notepad Plus

Hallo Experten,

ich verwende für Notepadd++ für das Suchen und Ersetzen von mehreren Dateien (Stapelverarbeitung).
1. Ich möchte in einem Visual Basic Code die Kommentare herausnehmen. Ich suche hierzu mit '.* alle Kommentare die mit ' anfangen
und Ersetzte diese mit Nichts.

notepad

2. Danach lösche ich in allen Dateien einzeln noch alle leeren Zeilen über
Menü -> Berarbeiten -> Zeilenoperationen -> Leerzeilen (auch mit Whitespace) löschen alle leeren Zeilen.

notepad_2


Wie kann ich diese beiden Punkte mit dem Programm Notepad++ so automatisieren, dass alle Dateien in einem Ordner
mit einer Aktion geändert werden?

Für eine Lösung wäre ich sehr dankbar.


Viele Grüße

Content-ID: 491940

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

Pjordorf
Lösung Pjordorf 05.09.2019 um 11:55:13 Uhr
Goto Top
Hallo,

Zitat von @silvereye:
Wie kann ich diese beiden Punkte mit dem Programm Notepad++ so automatisieren, dass alle Dateien in einem Ordner
http://www.martinrinehart.com/frontend-engineering/engineers/tools/note ...

mit einer Aktion geändert werden?
Das wird nicht gehen. Immer schön eins nach dem anderen. Ein Rechner ist zwar schnell, aber etwas gleichzeitig mit etwas anderes zu tun ist eher noch Zukunftsvisionen

Gruß,
Peter
silvereye
silvereye 05.09.2019 um 12:11:04 Uhr
Goto Top
Hallo Pjordorf,

danke für Deine schnelle Antwort. Die Recorderfunktion kannte ich noch nicht und bin somit ein bisschen schlauer face-smile.
Über die Makrofunktion kann ich das Löschen der Leerzeilen für eine geöffnete Datei über ein Tastenkürzel schnell ausführen.

Wie kann bei allen Dateien über eine Stapelverabeitung die Leerzeilen löschen ohne die Dateien einzeln
nacheinander abzuarbeiten?

Vielen Dank und Grüße
140913
Lösung 140913 05.09.2019 aktualisiert um 13:04:21 Uhr
Goto Top
Geht auch ohne Makro in NP++:

screenshot

Oder man macht's schnell mit nem Powershell Einzeiler
Get-ChildItem 'D:\quelle' -File -Filter *.txt | %{(gc $_.Fullname) | ?{$_ -notmatch "^\s*$|^\s*'"} | sc $_.FullName}  
Pjordorf
Pjordorf 05.09.2019 um 12:24:34 Uhr
Goto Top
Hallo,

Zitat von @silvereye:
Wie kann bei allen Dateien über eine Stapelverabeitung die Leerzeilen löschen ohne die Dateien einzeln nacheinander abzuarbeiten?
Wie soll das Funktionieren wenn nicht nacheinander?

Gruß,
Peter
silvereye
silvereye 05.09.2019 um 12:52:23 Uhr
Goto Top
Hallo psuser,

ich habe Deine beiden Lösungsvorschläge getestet.
Die Powershell Variante funktioniert bestens! Danke dafür.
Beim Testen der der Notepad++ Variante sind alle Kommentare raus, leider nicht die Leerzeilen, unabhängig von deren "Inhalt" mit ohne Leerzeichen oder Tabs.
Hast Du vielleicht hier noch eine Idee?

Danke und Gruß
140913
140913 05.09.2019 aktualisiert um 12:54:26 Uhr
Goto Top
Zitat von @silvereye:

Hallo psuser,

ich habe Deine beiden Lösungsvorschläge getestet.
Die Powershell Variante funktioniert bestens! Danke dafür.
Beim Testen der der Notepad++ Variante sind alle Kommentare raus, leider nicht die Leerzeilen, unabhängig von deren "Inhalt" mit ohne Leerzeichen oder Tabs.
Hast Du vielleicht hier noch eine Idee?
Klappt hier einwandfrei, dann hast du den Regex nicht richtig abgetippt.
silvereye
silvereye 05.09.2019 um 12:54:55 Uhr
Goto Top
Hallo Peter,

ja nacheinander schon nur soll das automatisch passieren. Ich möchte das nicht bei über 50 Dateien einzeln bearbeiten.
silvereye
silvereye 05.09.2019 um 13:00:19 Uhr
Goto Top
Hallo psuser,

ich habe folgendes abgetippt:
(?m)(\s*‘.*?[\r\n+|\s*[\r\n]+$)
Habe ich vielleicht ein Zeichen nicht richtig abgelesen?
140913
Lösung 140913 05.09.2019 aktualisiert um 13:05:30 Uhr
Goto Top
Zitat von @silvereye:

Hallo psuser,

ich habe folgendes abgetippt:
(?m)(\s*‘.*?[\r\n+|\s*[\r\n]+$)
Habe ich vielleicht ein Zeichen nicht richtig abgelesen?
Sogar mehrere ...
(?m)(^\s*'.*?[\r\n]+|^\s*[\r\n]+)  
silvereye
silvereye 05.09.2019 um 13:09:09 Uhr
Goto Top
... vielen Dank für Deine Mühen, jetzt läuft es auch bei mir ....