NumberMe Nummerieren, Denummerieren, Leerzeilen entfernen, Zeilen zählen,Trennzeichen(satz)auswahl ... die Aktuellste mit Beschreibung.
Hier bekommst Du die Aktualisierte NumberMe zum Automatischen Nummerieren des Inhaltes von (fast) allen Dateien.
Oder um einfach nur die Leerzeilen in einer Datei zu entfernen (Wird standardmässig immer gemacht!)
Nummerierung Denummerierung und mit Trennzeichen(satz)auswahl
Updated at last: 22.02.2011 16:00
Fehlende Backslashes im gesamten Beitrag nachgezogen. Diese haben gefehlt, da die Forensoftware manchal Muckt
Ich weis ja nicht ob ich der einzige bin der das Ding nutzt aber ich denke mal so weit wie das Dingens jetzt ist kann ich es gut anbieten. schade ist nur das ich kein Feedback bekomme zwecks Fehlerbeseitigung...lag vllt an meinem schlechten Support dann werde ich das mal ein bisschen Dokumentieren
Wenn Du das script nutzt und Fehler auftreten gib Bitte eine Meldung über Nachrichten Funktion oder Mail. Danke
Noch eine Erklärung dazu:
Der Quellcode wird beim Klick auf Quelltext in einem Scriptfenter geöffnet - es müssen also für diese Webseite Scripte im Browser erlaubt sein.
Den Quellcode speichert Du in einer Textdatei als NumberMe.bat oder NumberMe.cmd unter der Dateityp "alle Dateien" oder auch so wie Du das Programm nennen möchtest mit der Extension.
Numberme.bat wird einfach in %windir% oder %windir%\system32 oder einen anderen Pfad welcher in der UmgebungsVariablen %PATH% enthalten ist Hineinkopiert.
somit steht das Batch in der CMD und Batches sowie Anwendungen zur Verfügung.
Hier gehts zum Quellcode
Praxisbeispiele
Standardmässig gibt NumberMe gefolgt von einer (Vorzugszweise) Textdatei [oder welche man sonst auch immer mit den Editor bearbeiten kann] die Nummerierung inklusive aller Nötigen Vornullen (aber mindestens zwei) gefolgt von den Text der in der Zeile der Datei steht im CMD Fenster aus. Voraussgesetzt Numberme wurde auf der CMD-Line gestartet. Dabei ist es völlig egal wieviele Zeilen die Quelldatei hat. ob 20, 12053 oder 999 - die ausgabe gibt immer die richtigen Vornullen aus. dh von 01-20, 00001 - 12053 oder 001-999 wird nummeriert. von 1-9 wird standardmässig zu 01 - 09 Nummeriert. Als Meldung wird die Anzahl Zeilen und Anzahl Leerzeilen der Quelldatei ausgegeben.
Anzeige des Nummerierten Textes im CMD Fenster
nach der Ausgabe unten dran im CMD steht dann wieviele Zeilen insgesamt und wieviele Leerzeilen die Datei hat. Die letzte nummerrierte Zeile zeigt Dir die Anzahl der NichtLeerzeilen bei gebrauch der Option N an.
Du kannst auch einfach die Leerzeilen einer Datei entfernen.
Leerzeilen in einer Datei entfernen
es kommt die Meldung das in "dieDatei.txt" Leerzeilen entfernt werden.
und die Zeilenzahlen.
wenn die Quell-Datei keine Leerzeilen hat wird eine entsprechende Meldung ausgegeben dann kommen die Zeilenzahlen und der ExitCode / wird geliefert - wenn man ihn Abruft.
Die Quelldatei nummerieren.
Die Leerzeilen können auch mit einzubezogen werden.
Nummerierung ausgeben und Leerzeilen auch Nummerieren
nun werden alle Zeilen der "meine Datei.txt" Nummeriert in der CMD ausgegeben.
Um die Quelldatei so zu belassen und eine andere Datei mit inklusive der Nummerierung zu Erstellen und Anstelle des Leerzeichens zwischen der Nummer und dem Text einen Punkt zu setzen nimmst Du die Option /Z
Orginaldatei nicht verändern und diese Nummeriert mit Punkt als eine Andere Datei speichern
AnzahlZeilen 733 AnzahlLeerzeilen 154
komt dann zB als Ausgabe und wenn Du die Kopie öffnest steht dann zB.
Um diese Quell-Datei zu denummerieren und dabei die LeerZeilen zu entfernen nimmst Du die Option /N- .
Die Option /Z kann auch entfallen wenn die Quell-Datei eine
Übrigens kann die Reihenfolge der Optionen ganz egal sein - ausser die Quelldatei muss vor der Zieldatei angegeben werden. Ach und wir wollen auch Alle Meldungen unterdrücken mit /QE das heist wir möchten vllt nur den Exitcode Abfragen.
Nummerierung [mit Punkt oder Leerzeichen] und Leerzeilen aus einer Datei entfernen ohne Meldungen
jetzt kannst Du schon zum Exitcode abfragen diesen eintippen. auch wenn es jetzt fast zwei sekunden dauern sollte bei 733 Zeilen und entsprechend viel Text pro Zeil ist das möglich. Du siehst halt vllt nur noch den Coursor nicht.
die Null Erscheint dann wenn geklappt hat.
Wenn Du nun dieselbe Zeile vom numberme eingibst wirst Du nur den Exitcode 5 erhalten, welcher eine Nichtvorhandene Nummerierung inklusive dem Angegebenen /Z Trennzeichen (waas bei Punkt entfallen kann) nicht mehr findet und deswegen nichts weiter macht. Somit kanst Du also Dateien auf eine Vorhandene Nummerierung Prüfen vorzugsweise ohne eine Zieldateiangabe. vllt auch ohne die /E oder /EQ Option um die FehlerMeldung zu lesen.
.
Erklärung der Funktionen
Die Option / oder /? oder /help Ruft die Hilfe auf. Die Option /?en ruft Credits und eine Kurzanleitung in Englisch auf - ich hoffe ja es ist zu verstehen..hmmmm!
Die Doppelpelpunkte der Optionen /N /L /Z können entfallen. Optionen Können Aneinandergehangen werden: /n/q
Um mit einem Anschiesenden Doppelpunkt zu Nummerieren muss die Option /Z:: genommen werden.
Die Option /N: ist zum Nur Entfernen der Leerzeilen in der Zieldatei zuständig und muss bei der Entfernung der Leerzeilen in der Quelldatei nicht angegeben werden, da dies bei der Eingabe von Quelle und gleichem Ziel nicht notwendig ist, da halt Standardmässig in der Quelldatei nicht nummerriert wird. Diese Ausgabe ist am schnellsten wenn Du nur die Zeilenwerte haben möchtest. Zeilen mit NUR Leerzeichen oder Tabs sind Leerzeilen.
Die Option /N:0 gibt in die Ausgabe eine Nummerierung OHNE VorNullen. zB von 1 - 102.
Die Option /N:1 gibt in die Ausgabe eine Nummerierung Mit Automatischen VorNullen. zB. von 1 - 9, 01 - 89, 0001 - 1000
Die Option /N:3 gibt in die Ausgabe eine Nummerrierung welche zB. bei 001 anfängt und 024 endet. Wenn die Datei mehr Zeilen als 999 hat wird Automatisch vorgenullt. zB. 0001 - 1450; Die Zahl bestimmt also die NummernBreite inklusive Vornullen wenn die Datei nicht mehr Zeilen hat.
Die Option /N:- prüft auf eine Vorhandene Durchgängige Nummerierung und gibt bei Erfolg in die Ausgabe die Zeilen OHNE LeerZeilen und ohne Nummerierung.
Die Option /L: gibt in die Ausgabe wie Option N NUR mit LeerzeilenDie Option /L- Entfernt keine Leerzeilen hinter der Nummerierung
Die Option /L0 /L1 usw gibt in die Ausgabe wie in Option N nur mit Leerzeilen.
Die Option /Z: Tauscht das Trennzeichen "Leerzeichen" mit einem "Punkt" aus, dieser wird nun hinter die Nummern zum Nummerieren gesetzt. oder zum Denummerieren einer gefundenen Durchgehenden Nummerierung mit Punkt mit der Nummerierung zusammen entfernt.
Die Option /Z:Trennzeichen muss wenn die Trennzeichen Leerzeichen enthalten, in Gänsefüsschen gesetzt werden.
zB. "/Z:TR EN" (oder /Z"TR EN" oder /ZTR" "EN). Zum Nummerieren ist es egal was für ein Zeichen oder wie die Zeichenfolge ist zB. /Z":. ".
Um mit einem Anschiesenden Doppelpunkt zu Nummerieren muss die Option /Z:: genommen werden.
Achtung bei Befehlsverkettungszeichen! Weis nicht wie es da reagiert ....
Zum Denummerieren wird das erste Zeichen als Trennzeichen der Abrenzung zur Nummerierung genommen und das letzte als Trennzeichen der Abgrenzung zum Text. Die Zeichenfolge wird im Text Überprüft. Das letzte Zeichen nicht nochmals in der Zeichenfolge verwenden. Eventuell mit der Option /n vorher den Text Überprüfen.
Die Option /F setzt als Ziel die Quelldatei oder eine Angegebene Zieldatei. Ist als Verkürzung der Syntax bei Aktion in Quelle gedacht. Nummeriert Standartmässig mit /n2.
Die Option /Q ist der Quit Modus und unterdrückt die Statusmeldungen welche keinen Errorlevel liefern. zB Quelldatei wird nummeriert oder ausgabe Zeilenanzahl am Ende.
Die Option /E ist der Error QuitModus und unterdrückt alle Meldungen welche zu einem Errorlevel ausgegeben werden. zB. Syntaxfehler! Bitte Quelldateinamen angeben!
Diese beiden Optionen können Kombiniert so angegeben werden: /QE oder auch /EQ
Mittels einer Ungültigen Option und Option /E kannst Du Dir NUR die Zeilenwerte ausgeben lassen.
zum Beispiel /r/e
so Ende der Dokumentation Erreicht.
vllt ist für den ein oder anderen ein Codesnipsel brauchbar
* -... = wurde gefixt in V... (XLvl = Errorlevel wird angezeigt)
* +... = Optional seit V...
Danke auch an den Urheber des Grundscriptes Biber und der Idee und an CMD -vbs- Bastla
Thanks to Biber
Für das Grundgerüst.
Thanks to bastla
für die Tipps der Überflüssigen Zeilen und Hilfeverbesserung
Updated at last: 22.02.2011 16:00
Tags: Text nummerieren, Dateiinhalt nummerieren, Textdatei nummerieren, Zeilennummern aus File entfernen, Batch Zeilen nummeriert, Script Zeilen nummerieren
Gruß Phil
Oder um einfach nur die Leerzeilen in einer Datei zu entfernen (Wird standardmässig immer gemacht!)
Nummerierung Denummerierung und mit Trennzeichen(satz)auswahl
Inhaltsverzeichnis
Updated at last: 22.02.2011 16:00
Fehlende Backslashes im gesamten Beitrag nachgezogen. Diese haben gefehlt, da die Forensoftware manchal Muckt
NumberMe.bat 1.9
Nummerieren und DeNummerieren von TextdateienIch weis ja nicht ob ich der einzige bin der das Ding nutzt aber ich denke mal so weit wie das Dingens jetzt ist kann ich es gut anbieten. schade ist nur das ich kein Feedback bekomme zwecks Fehlerbeseitigung...lag vllt an meinem schlechten Support dann werde ich das mal ein bisschen Dokumentieren
Wenn Du das script nutzt und Fehler auftreten gib Bitte eine Meldung über Nachrichten Funktion oder Mail. Danke
Noch eine Erklärung dazu:
Der Quellcode wird beim Klick auf Quelltext in einem Scriptfenter geöffnet - es müssen also für diese Webseite Scripte im Browser erlaubt sein.
Den Quellcode speichert Du in einer Textdatei als NumberMe.bat oder NumberMe.cmd unter der Dateityp "alle Dateien" oder auch so wie Du das Programm nennen möchtest mit der Extension.
Numberme.bat wird einfach in %windir% oder %windir%\system32 oder einen anderen Pfad welcher in der UmgebungsVariablen %PATH% enthalten ist Hineinkopiert.
somit steht das Batch in der CMD und Batches sowie Anwendungen zur Verfügung.
Hier gehts zum Quellcode
Was macht NumberMe - Dokumentation
Diese Dokumentation bezieht sich auf diese Version 1.9Standardmässig gibt NumberMe gefolgt von einer (Vorzugszweise) Textdatei [oder welche man sonst auch immer mit den Editor bearbeiten kann] die Nummerierung inklusive aller Nötigen Vornullen (aber mindestens zwei) gefolgt von den Text der in der Zeile der Datei steht im CMD Fenster aus. Voraussgesetzt Numberme wurde auf der CMD-Line gestartet. Dabei ist es völlig egal wieviele Zeilen die Quelldatei hat. ob 20, 12053 oder 999 - die ausgabe gibt immer die richtigen Vornullen aus. dh von 01-20, 00001 - 12053 oder 001-999 wird nummeriert. von 1-9 wird standardmässig zu 01 - 09 Nummeriert. Als Meldung wird die Anzahl Zeilen und Anzahl Leerzeilen der Quelldatei ausgegeben.
Anzeige des Nummerierten Textes im CMD Fenster
numberme "meine (2) .txt"
: oder das geht auch...wenn Du Dich im Verzeichnis befindest...
numberme numberme.cmd
Du kannst auch einfach die Leerzeilen einer Datei entfernen.
Leerzeilen in einer Datei entfernen
numberme "derPfad\dieDatei.txt" "derPfad\dieDatei.txt"
und die Zeilenzahlen.
wenn die Quell-Datei keine Leerzeilen hat wird eine entsprechende Meldung ausgegeben dann kommen die Zeilenzahlen und der ExitCode / wird geliefert - wenn man ihn Abruft.
Die Quelldatei nummerieren.
numberme "derPfad\die Datei.txt" /f
Die Leerzeilen können auch mit einzubezogen werden.
Nummerierung ausgeben und Leerzeilen auch Nummerieren
numberme "meine Datei (1).txt" /L1
Um die Quelldatei so zu belassen und eine andere Datei mit inklusive der Nummerierung zu Erstellen und Anstelle des Leerzeichens zwischen der Nummer und dem Text einen Punkt zu setzen nimmst Du die Option /Z
Orginaldatei nicht verändern und diese Nummeriert mit Punkt als eine Andere Datei speichern
numberme meinOriginal /Z "die Kopie" /L1
komt dann zB als Ausgabe und wenn Du die Kopie öffnest steht dann zB.
...
002.Beenden eines Dienstes:
003.sc stop DIENSTNAME
004.Starten eines Dienstes:
005.sc start DIENSTNAME
006.Deaktivieren eines Dienstes (Startart auf "Deaktiviert")
007.sc config DIENSTNAME start= disabled
...
Um diese Quell-Datei zu denummerieren und dabei die LeerZeilen zu entfernen nimmst Du die Option /N- .
Die Option /Z kann auch entfallen wenn die Quell-Datei eine
- Nummerierung mit Punkt oder eine
- Nummerierung mit Leerzeichen oder eine
- Nummerierung mit Doppelpunkt enthält.
Übrigens kann die Reihenfolge der Optionen ganz egal sein - ausser die Quelldatei muss vor der Zieldatei angegeben werden. Ach und wir wollen auch Alle Meldungen unterdrücken mit /QE das heist wir möchten vllt nur den Exitcode Abfragen.
Nummerierung [mit Punkt oder Leerzeichen] und Leerzeilen aus einer Datei entfernen ohne Meldungen
numberme "die Kopie" /N-/qe "die Kopie"
echo %errorlevel%
0
Wenn Du nun dieselbe Zeile vom numberme eingibst wirst Du nur den Exitcode 5 erhalten, welcher eine Nichtvorhandene Nummerierung inklusive dem Angegebenen /Z Trennzeichen (waas bei Punkt entfallen kann) nicht mehr findet und deswegen nichts weiter macht. Somit kanst Du also Dateien auf eine Vorhandene Nummerierung Prüfen vorzugsweise ohne eine Zieldateiangabe. vllt auch ohne die /E oder /EQ Option um die FehlerMeldung zu lesen.
.
Die Option / oder /? oder /help Ruft die Hilfe auf. Die Option /?en ruft Credits und eine Kurzanleitung in Englisch auf - ich hoffe ja es ist zu verstehen..hmmmm!
Die Doppelpelpunkte der Optionen /N /L /Z können entfallen. Optionen Können Aneinandergehangen werden: /n/q
Um mit einem Anschiesenden Doppelpunkt zu Nummerieren muss die Option /Z:: genommen werden.
Die Option /N: ist zum Nur Entfernen der Leerzeilen in der Zieldatei zuständig und muss bei der Entfernung der Leerzeilen in der Quelldatei nicht angegeben werden, da dies bei der Eingabe von Quelle und gleichem Ziel nicht notwendig ist, da halt Standardmässig in der Quelldatei nicht nummerriert wird. Diese Ausgabe ist am schnellsten wenn Du nur die Zeilenwerte haben möchtest. Zeilen mit NUR Leerzeichen oder Tabs sind Leerzeilen.
Die Option /N:0 gibt in die Ausgabe eine Nummerierung OHNE VorNullen. zB von 1 - 102.
Die Option /N:1 gibt in die Ausgabe eine Nummerierung Mit Automatischen VorNullen. zB. von 1 - 9, 01 - 89, 0001 - 1000
Die Option /N:3 gibt in die Ausgabe eine Nummerrierung welche zB. bei 001 anfängt und 024 endet. Wenn die Datei mehr Zeilen als 999 hat wird Automatisch vorgenullt. zB. 0001 - 1450; Die Zahl bestimmt also die NummernBreite inklusive Vornullen wenn die Datei nicht mehr Zeilen hat.
Die Option /N:- prüft auf eine Vorhandene Durchgängige Nummerierung und gibt bei Erfolg in die Ausgabe die Zeilen OHNE LeerZeilen und ohne Nummerierung.
Die Option /L: gibt in die Ausgabe wie Option N NUR mit LeerzeilenDie Option /L- Entfernt keine Leerzeilen hinter der Nummerierung
Die Option /L0 /L1 usw gibt in die Ausgabe wie in Option N nur mit Leerzeilen.
Die Option /Z: Tauscht das Trennzeichen "Leerzeichen" mit einem "Punkt" aus, dieser wird nun hinter die Nummern zum Nummerieren gesetzt. oder zum Denummerieren einer gefundenen Durchgehenden Nummerierung mit Punkt mit der Nummerierung zusammen entfernt.
Die Option /Z:Trennzeichen muss wenn die Trennzeichen Leerzeichen enthalten, in Gänsefüsschen gesetzt werden.
zB. "/Z:TR EN" (oder /Z"TR EN" oder /ZTR" "EN). Zum Nummerieren ist es egal was für ein Zeichen oder wie die Zeichenfolge ist zB. /Z":. ".
Um mit einem Anschiesenden Doppelpunkt zu Nummerieren muss die Option /Z:: genommen werden.
Achtung bei Befehlsverkettungszeichen! Weis nicht wie es da reagiert ....
Zum Denummerieren wird das erste Zeichen als Trennzeichen der Abrenzung zur Nummerierung genommen und das letzte als Trennzeichen der Abgrenzung zum Text. Die Zeichenfolge wird im Text Überprüft. Das letzte Zeichen nicht nochmals in der Zeichenfolge verwenden. Eventuell mit der Option /n vorher den Text Überprüfen.
Die Option /F setzt als Ziel die Quelldatei oder eine Angegebene Zieldatei. Ist als Verkürzung der Syntax bei Aktion in Quelle gedacht. Nummeriert Standartmässig mit /n2.
Die Option /Q ist der Quit Modus und unterdrückt die Statusmeldungen welche keinen Errorlevel liefern. zB Quelldatei wird nummeriert oder ausgabe Zeilenanzahl am Ende.
Die Option /E ist der Error QuitModus und unterdrückt alle Meldungen welche zu einem Errorlevel ausgegeben werden. zB. Syntaxfehler! Bitte Quelldateinamen angeben!
Diese beiden Optionen können Kombiniert so angegeben werden: /QE oder auch /EQ
Mittels einer Ungültigen Option und Option /E kannst Du Dir NUR die Zeilenwerte ausgeben lassen.
zum Beispiel /r/e
so Ende der Dokumentation Erreicht.
vllt ist für den ein oder anderen ein Codesnipsel brauchbar
NumberMe Exitcodes Errorlevel
Seit V1.6 Neue Versionsnummer 1.9Errorlevel | Bedeutung |
0 | Aktion Erfolgreich |
1 | Quell-Pfad-Dateiname immer Erforderlich. Bitte Eingeben! |
2 | Quell-Pfad-Datei nicht gefunden! |
3 | Ungültige Eingabe einer Syntax |
4 | Quelldatei ist Leer |
5 | Quelldatei enthält keine Durchgehende Nummerierung |
6 | Quelldatei enthält keine Leerzeilen |
7 | Quelldatei enthält nur leerzeilen |
NumberMe Changelog
Changelog:
V1.9 22.02.2011
NEW OPTION [F] für Aktion in der Quelle oder im angegebenen Ziel
Zeilenüberprüfung umgeschrieben/beschleunigt
Syntaxprüfung Umgeändert
Prüfung auf vorhandene Nummerierung verbessert/beschleunigt
Nummerierungsfunktion aus einer Datei statt einem Befehl in der Forschleife ersetzt - beschleunigt
Durchsuchen einer Vorhandenen Nummerierung und Entfernen einer Nummerierung: Trennzeichen Doppelpunkt hinzugefügt
AusgabeUmleitung von Statusmeldungen über Handle 3 hinzugefügt
AusgabeUmleitung von Errormeldungen über Handle 2 hinzugefügt
ein Paar Forschleifen entfernt und einfachere Ausgabemöglichkeiten genutzt
Umleitung nach "CON" entfernt - dadurch können jetzt die (un)nummerierten Ausgaben per Handle 1 behandelt werden oder in For-Schleifen benutzt werden.
.
V1.8 21.09.2009
noch ein paar Überflüssige Zeilen entfernt
Zeilenzählung inklusive Tempdateierstellung in eine Schleife gemacht statt 3 seperaten schleifen.
.
V1.7 19.09.2009
Prüfung auf Denummurierung beschleunigt
Langsame Nummerierung entfernt
.
V1.6 (Final) 17/18.09.2009
Trennzeichenfolge aus Option /Z wird zum Denummerieren im Text überprüft
Zeilen mit nur Space oder Tab sind nun Leerzeilen
Option L- Löscht bei denummerierung in die Ausgabe keine Leerzeilen
Option N- Löscht bei denummerierung in die Ausgabe die Leerzeilen
Statusmeldungen Überarbeitet erscheinen bei Aktion in Zieldatei
Exitcode 7 Meldung Quelldatei enthält nur leerzeilen
Exitcode 4 Qelldatei ist leer
.
V1.5 16.09.2009
Bugfix:Tennzeichen werden nun richtig entfernt ohne den Text zu Verändern
Bugfix: Bei Option L werden die Doppelpunkte am Anfang auch nicht gelöscht
Wenn die Datei keine Leerzeilen (Nur reine Leerzeilen ohne Scace) enthält wird zur schnellen Nummerierung der Option L übergegangen
Zeilen mit nur Space werden nun nicht als Leerzeilen angesehen
.
V1.4 15.09.2009
Code Umgeschrieben
Bugfix: Ziel-Pfad-Datei kann nun auch Klammern enthalten
Klammerprüfung entfernt, Exitcode entfernt, Meldung entfernt
zwei Exitcodes Umgelagert 6 und 3
NEW OPTION [L] für De- oder Nummerierung mit Leerzeilen Funktionsweise wie bei [N]
Achtung Option L entfernt bei Ausgabe Doppelpunkte am Anfang der Zeile.
Hilfe erweitert
Optionen können aneinandergehangen werden Doppelpunkt ist nun Optional zB. /n-/Z/q
Denummerierung prüft eigenständig auf Leerzeichen oder Punkt
Bei Verwendung der Option Z wird bei Aktion in QuellDatei auch ohne Option N oder L Nummeriert
.
V1.3: 30.08.2009
ExitCode 0 Hinzugefügt: Keine Meldung
Bugfix: Denummerierung ging nur bis 100 zeilen lange Datei und jetzt bessere Behandlung bei Entfernung einer Nummerierung mit Vornullen...
ohne Findstr da sonst Performanceeinbuse
Bugfix: Bei Denummerierung wurde statt der ersten Zeile die letze Zeile eingefügt
Englische Erklärung wurde verständlicher formuliert
Aufruf der Englischen Kurzanleitung und Credits [/?en]
Erweiterung vom Aufruf der Hilfe über [/] [/?] [/help]
Meldung fuer Klammer im Ziel leicht verändert
Code aufbereitet und Stichpunkte eingetragen (musste sein - augrund der länge fand ich mich selber nicht mehr darin zurecht!)
EXITCODE In Quelldatei werden KEINE Leerzeilen EXTRA entfernt wenn keine gefunden werden (XLvl:7)
Syntaxprüfung nach dem 1. Parameter verbessert
EXITCODE Ungültige Syntax wird NICHT aufgenommen aber MELDUNG wenn solch eine Eingegeben worden ist. (XLvl:6)
Vorgang wird nach gültigen Syntax Durchgeführt aber andere Errormeldungen werden Ausgegeben ohne ExitCodes
Zieldatei und Parameter können wieder Positionsunabhängig eingegeben werden
Exitcode zur Meldung hinzugefügt bei: Keine Nummerierung in Quelldatei vorhanden (zum Denumbern) (XLvl:5)
Meldung Enfernt wenn: Fertig!
MELDUNG: Gesamt Anzahl Zeilen und Anzahl Leerzeilen
NEW OPTION: QUIT MODUS für Standardmeldungen [Q] kann zu [QE] Kombiniert werden
NEW OPTION: ERRORQUIT MODUS für Errormeldungen [E]kann zu [EQ] Kombiniert werden
NEW OPTION: Trennzeicheneinstellung für ein oder mehr Zeichen zum Nummerrieren oder Denummerieren
[Z:] wechsel von Leerzeichen zum Punkt; [Z:Trennzeichen(satz)] Eingabe gewünschter TrennZeichen
Bugfix: bei Aktion in der Quelldatei wurde der Aktuelle Pfad der CMD oder Batchpfad als Zielpfad genommen
.
V1.2: 17.06.2009
Quell-Pfad-Dateiname kann Klammern enthalten muss aber auch wie für andere Sonderzeichen und Leerzeichen in Anführungszeichen gesetzt werden.
NEUE OPTION: Entfernung von einer gefundenen Nummerierung. - auch in der Quelldatei. (Schalterwechsel) [/n:-]
NEUE OPTION: Schalterwechsel [/n:] Datei wird nicht Nummeriert nur Leerzeilen entfernt.
Hilfe Aktualisiert
Zieldateiname darf KEINE Klammern enthalten muss aber für Sonderzeichen und Leerzeichen in Anführungszeichen gesetzt werden.
Englische Erklärung verbessert
Meldung bei: Keine Nummerierung in Quelldatei vorhanden (zum Denumbern)
.
V1.1: 14.06.2009
Exitcodes hinzugefügt (errorlevel) (XLvl:1+2)
NEW OPTION: (Nummerierung) in Quelldatei hinzugefügt
Bugfix: + Meldung + Errorlevel: Erkennung von Klammern im Quell/Ziel-Pfad und Dateinamen (XLvl:3)
Meldung + Errorlevel: Wenn Quelldatei leer oder nur Leerzeilen enthalten sind.(XLvl:4)
Hilfe Aktualisiert
Meldung bei: Nummerieren / entfernen Leerzeilen in Quelldatei; Klammern im Dateiname/Pfad
Wenn Angabe der Zieldatei dann NUR eine Stelle nach der Quelldatei, NUR Parameter werden weiter Positionsunabhängig eingegeben werden
.
V1.0b: 13.06.2009
Bugfix: Verarbeitungsgeschwindigkeit erhöht
Quell/Ziel-Pfad und Dateinamen können Leerzeichen enthalten wenn Umgebende Anführungszeichen benutzt werden
Hilfe berichtigt
Meldung bei: Fertig
.
V1.0: 13.06.2009 by pieh-ejdsch
Bugfix: verzögerte Variablenauflösung entfernt, Ausrufezeichen werden Übernommen
NEW OPTION: Hilfe Hinzugefügt [/?]
NEW OPTION: Automatisierte Vornullenerstellung hinzugefügt
NEW OPTION: Vornullen können abgestellt werden
NEW OPTION: Nummerierung kann abgestellt werden (nur Leerzeilenentfernung)
Quelldateiname kann Leerzeichen enthalten wenn Umgebende Anführungszeichen benutzt werden
Verarbeitungsgeschwindigkeit rapide gesunken *1.0b
Keine Errorlevel (mehr) vorhanden
.
V0.03: 15.08.2004 by Biber
OFFICIAL FIRST RELEASE
Die erste Option bennent die Quelldatei dahinter können Optionen vertauscht werden
Leerzeilen werden immer entfernt (Standard Feature)
NEW OPTION: Standard Nummerierung mit 2 Stellen* +1.0
NEW OPTION: Standard Nummerierung der QuellDatei als Bildschirmausgabe oder in ZielDatei
NEW OPTION: Stellenanzahl kann eingestellt werden
Nummerierung Immer mit Vornullen bzw gleicher NummernBreite* +1.0
Bei zu kleiner Stellenanzahl geht Nummerierung von vorn los * -1.0
Keine Leerzeichen im QuellDateinamen erlaubt (Batchabbruch) *-1.0
Keine Leerzeichen im QuellPfad und ZielPfadDateiname erlaubt (Batchabbruch) * -1.0b
Ausrufezeichen in Zieldatei fehlen * -1.0
Klammern im Dateinamen sind nicht erlaubt (Batchabbruch) * -1.1
Meldung + ERROR bei: Dateiname fehlt (XLvl)
Meldung + ERROR Quelldateidatei nicht vorhanden; (XLvl)
V1.9 22.02.2011
NEW OPTION [F] für Aktion in der Quelle oder im angegebenen Ziel
Zeilenüberprüfung umgeschrieben/beschleunigt
Syntaxprüfung Umgeändert
Prüfung auf vorhandene Nummerierung verbessert/beschleunigt
Nummerierungsfunktion aus einer Datei statt einem Befehl in der Forschleife ersetzt - beschleunigt
Durchsuchen einer Vorhandenen Nummerierung und Entfernen einer Nummerierung: Trennzeichen Doppelpunkt hinzugefügt
AusgabeUmleitung von Statusmeldungen über Handle 3 hinzugefügt
AusgabeUmleitung von Errormeldungen über Handle 2 hinzugefügt
ein Paar Forschleifen entfernt und einfachere Ausgabemöglichkeiten genutzt
Umleitung nach "CON" entfernt - dadurch können jetzt die (un)nummerierten Ausgaben per Handle 1 behandelt werden oder in For-Schleifen benutzt werden.
.
V1.8 21.09.2009
noch ein paar Überflüssige Zeilen entfernt
Zeilenzählung inklusive Tempdateierstellung in eine Schleife gemacht statt 3 seperaten schleifen.
.
V1.7 19.09.2009
Prüfung auf Denummurierung beschleunigt
Langsame Nummerierung entfernt
.
V1.6 (Final) 17/18.09.2009
Trennzeichenfolge aus Option /Z wird zum Denummerieren im Text überprüft
Zeilen mit nur Space oder Tab sind nun Leerzeilen
Option L- Löscht bei denummerierung in die Ausgabe keine Leerzeilen
Option N- Löscht bei denummerierung in die Ausgabe die Leerzeilen
Statusmeldungen Überarbeitet erscheinen bei Aktion in Zieldatei
Exitcode 7 Meldung Quelldatei enthält nur leerzeilen
Exitcode 4 Qelldatei ist leer
.
V1.5 16.09.2009
Bugfix:Tennzeichen werden nun richtig entfernt ohne den Text zu Verändern
Bugfix: Bei Option L werden die Doppelpunkte am Anfang auch nicht gelöscht
Wenn die Datei keine Leerzeilen (Nur reine Leerzeilen ohne Scace) enthält wird zur schnellen Nummerierung der Option L übergegangen
Zeilen mit nur Space werden nun nicht als Leerzeilen angesehen
.
V1.4 15.09.2009
Code Umgeschrieben
Bugfix: Ziel-Pfad-Datei kann nun auch Klammern enthalten
Klammerprüfung entfernt, Exitcode entfernt, Meldung entfernt
zwei Exitcodes Umgelagert 6 und 3
NEW OPTION [L] für De- oder Nummerierung mit Leerzeilen Funktionsweise wie bei [N]
Achtung Option L entfernt bei Ausgabe Doppelpunkte am Anfang der Zeile.
Hilfe erweitert
Optionen können aneinandergehangen werden Doppelpunkt ist nun Optional zB. /n-/Z/q
Denummerierung prüft eigenständig auf Leerzeichen oder Punkt
Bei Verwendung der Option Z wird bei Aktion in QuellDatei auch ohne Option N oder L Nummeriert
.
V1.3: 30.08.2009
ExitCode 0 Hinzugefügt: Keine Meldung
Bugfix: Denummerierung ging nur bis 100 zeilen lange Datei und jetzt bessere Behandlung bei Entfernung einer Nummerierung mit Vornullen...
ohne Findstr da sonst Performanceeinbuse
Bugfix: Bei Denummerierung wurde statt der ersten Zeile die letze Zeile eingefügt
Englische Erklärung wurde verständlicher formuliert
Aufruf der Englischen Kurzanleitung und Credits [/?en]
Erweiterung vom Aufruf der Hilfe über [/] [/?] [/help]
Meldung fuer Klammer im Ziel leicht verändert
Code aufbereitet und Stichpunkte eingetragen (musste sein - augrund der länge fand ich mich selber nicht mehr darin zurecht!)
EXITCODE In Quelldatei werden KEINE Leerzeilen EXTRA entfernt wenn keine gefunden werden (XLvl:7)
Syntaxprüfung nach dem 1. Parameter verbessert
EXITCODE Ungültige Syntax wird NICHT aufgenommen aber MELDUNG wenn solch eine Eingegeben worden ist. (XLvl:6)
Vorgang wird nach gültigen Syntax Durchgeführt aber andere Errormeldungen werden Ausgegeben ohne ExitCodes
Zieldatei und Parameter können wieder Positionsunabhängig eingegeben werden
Exitcode zur Meldung hinzugefügt bei: Keine Nummerierung in Quelldatei vorhanden (zum Denumbern) (XLvl:5)
Meldung Enfernt wenn: Fertig!
MELDUNG: Gesamt Anzahl Zeilen und Anzahl Leerzeilen
NEW OPTION: QUIT MODUS für Standardmeldungen [Q] kann zu [QE] Kombiniert werden
NEW OPTION: ERRORQUIT MODUS für Errormeldungen [E]kann zu [EQ] Kombiniert werden
NEW OPTION: Trennzeicheneinstellung für ein oder mehr Zeichen zum Nummerrieren oder Denummerieren
[Z:] wechsel von Leerzeichen zum Punkt; [Z:Trennzeichen(satz)] Eingabe gewünschter TrennZeichen
Bugfix: bei Aktion in der Quelldatei wurde der Aktuelle Pfad der CMD oder Batchpfad als Zielpfad genommen
.
V1.2: 17.06.2009
Quell-Pfad-Dateiname kann Klammern enthalten muss aber auch wie für andere Sonderzeichen und Leerzeichen in Anführungszeichen gesetzt werden.
NEUE OPTION: Entfernung von einer gefundenen Nummerierung. - auch in der Quelldatei. (Schalterwechsel) [/n:-]
NEUE OPTION: Schalterwechsel [/n:] Datei wird nicht Nummeriert nur Leerzeilen entfernt.
Hilfe Aktualisiert
Zieldateiname darf KEINE Klammern enthalten muss aber für Sonderzeichen und Leerzeichen in Anführungszeichen gesetzt werden.
Englische Erklärung verbessert
Meldung bei: Keine Nummerierung in Quelldatei vorhanden (zum Denumbern)
.
V1.1: 14.06.2009
Exitcodes hinzugefügt (errorlevel) (XLvl:1+2)
NEW OPTION: (Nummerierung) in Quelldatei hinzugefügt
Bugfix: + Meldung + Errorlevel: Erkennung von Klammern im Quell/Ziel-Pfad und Dateinamen (XLvl:3)
Meldung + Errorlevel: Wenn Quelldatei leer oder nur Leerzeilen enthalten sind.(XLvl:4)
Hilfe Aktualisiert
Meldung bei: Nummerieren / entfernen Leerzeilen in Quelldatei; Klammern im Dateiname/Pfad
Wenn Angabe der Zieldatei dann NUR eine Stelle nach der Quelldatei, NUR Parameter werden weiter Positionsunabhängig eingegeben werden
.
V1.0b: 13.06.2009
Bugfix: Verarbeitungsgeschwindigkeit erhöht
Quell/Ziel-Pfad und Dateinamen können Leerzeichen enthalten wenn Umgebende Anführungszeichen benutzt werden
Hilfe berichtigt
Meldung bei: Fertig
.
V1.0: 13.06.2009 by pieh-ejdsch
Bugfix: verzögerte Variablenauflösung entfernt, Ausrufezeichen werden Übernommen
NEW OPTION: Hilfe Hinzugefügt [/?]
NEW OPTION: Automatisierte Vornullenerstellung hinzugefügt
NEW OPTION: Vornullen können abgestellt werden
NEW OPTION: Nummerierung kann abgestellt werden (nur Leerzeilenentfernung)
Quelldateiname kann Leerzeichen enthalten wenn Umgebende Anführungszeichen benutzt werden
Verarbeitungsgeschwindigkeit rapide gesunken *1.0b
Keine Errorlevel (mehr) vorhanden
.
V0.03: 15.08.2004 by Biber
OFFICIAL FIRST RELEASE
Die erste Option bennent die Quelldatei dahinter können Optionen vertauscht werden
Leerzeilen werden immer entfernt (Standard Feature)
NEW OPTION: Standard Nummerierung mit 2 Stellen* +1.0
NEW OPTION: Standard Nummerierung der QuellDatei als Bildschirmausgabe oder in ZielDatei
NEW OPTION: Stellenanzahl kann eingestellt werden
Nummerierung Immer mit Vornullen bzw gleicher NummernBreite* +1.0
Bei zu kleiner Stellenanzahl geht Nummerierung von vorn los * -1.0
Keine Leerzeichen im QuellDateinamen erlaubt (Batchabbruch) *-1.0
Keine Leerzeichen im QuellPfad und ZielPfadDateiname erlaubt (Batchabbruch) * -1.0b
Ausrufezeichen in Zieldatei fehlen * -1.0
Klammern im Dateinamen sind nicht erlaubt (Batchabbruch) * -1.1
Meldung + ERROR bei: Dateiname fehlt (XLvl)
Meldung + ERROR Quelldateidatei nicht vorhanden; (XLvl)
* -... = wurde gefixt in V... (XLvl = Errorlevel wird angezeigt)
* +... = Optional seit V...
NumberMe Script Programmcode
NumberMe.bat
:: -------------------schnipp------NumberMe.bat------------
::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::: #NumberMe.bat Version 1.9 .. put line numbers into Files or delete
::: #Numbering if found or/and/only delete all emty lines wiht or without spaces;
::: #help and progress of batch in german;
::: #[/?en] english short guide, bevor code in batch 1 line behind ::: [/?] Help ;
::: #Version 0.03 Placed into the Public Domain by Biber3@hotmail.de 15.08.2004;
::: #modified from 1.0 - 1.9 by pieh-ejdsch@o2online.de 13.06.2009 - 22.02.2011,
::: #last Versions: 0.03, 1.0, 1.0b thanks to bastla, 1.1 ... 1,9
::: #supportet by www.administrator.de ; Bugs or Updates? Please feedback!
::: #---Put in this code to Editor, save as "all-filetype" named NumberMe.cmd
::: #---For install on Win System: press [WIN]+[R] , then type: %windir%\system32
::: #---press Enter and put in this File to ExplorerWindow which has opened up
::: #---now this Application works in Batch; CMD or [WIN]+[R] by typing this
::: #---BatchName(.cmd) with or without Extension.---------------------------------
::: #------------------------------------------------------------------------------
::: [/?] Help german only, but here is an english short guide for You;
::: Sourcefilename must be the first Option. All other Options from second till
::: sixth can be in much differrent array. Dubbel dot in Options can be lost.
::: Options include no space to string together as /N-/Q/Z -or Seperately or other
::: sourcefilename for working batch always be needed, without target-path-filename only output on Screen;
::: [/f] for aktion in sourcefile or in target-path-filename
::: [/n:1] one-figure numbering with Automated PreZeroNumbering (1-7, 0001-4702)
::: (for example: [/n:5] not less than five-figure numbering-> 00001-00120);
::: [/n:0] setting for without PreZero (1-245);
::: [/n:-] deletes a numbered consecutively before space or Piont if found it
::: - or is it used to test for -> gives exitcode 5;
::: without [/n:] Auto PreZeroNumbering with not less than two-figure number just like [/n:2];
::: - only with [/n:] setting for without Numbering;
::: if you substitute [/N:] by [/L:] NumberMe will not be delete all empty lines,
::: syntax (behind dubble dot) takes effekt like than [/N:];
::: [/l:-] Denumbering without cleaning empty Lines;
::: [/Z:] change delimiter: space by point; or behind : Input other Delimiter(s)
::: to include Spaces or additional characters after delimiter ->Syntax must insert
::: between quotation marks for denumbering and incluce string to remove for,
::: -> be sure in string 1st and the last sign is not a number
::: ->be sure in string the last sign exist once;
::: [/Q] Quit modus: no Program message; been related works with E [/QE]
::: [/E] Quit modus: no Error message; been related works with Q [/EQ]
::: > Spaces for Path-File-Name or additional characters must insert between quotation marks;
::: > if source(path)name is equal to target(path)name NumberMe will be effect all
::: > in sourcefile and without Options [/Z] [/N|/L] [only deletes all empty lines;
::: > additional characters only displayed false on Screen;
::: output from sourcefile: number of all Lines and all empty Lines;
::: Programm messages Piped into the Handle 3
::: Error messages Piped into the handle 2
::: -------------------------------------------------------------------------------
::: EXITCODES: [0] successful; [1] put in filename; [2] sourcefile not found;
::: [3] input incorrect Syntax; [4] file is empty;
::: [5] file is not numbered consecutively; [6] file is without empty lines only
::: [7] file is with empty lines only;
::; :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off & setlocal disabledelayedexpansion
for %%i in ("pN=2" "b=" "b2=" "E=" "Q=" "Full=0" "noempty=0" "Zahlen=" "D=" "emptylines=" "erropt=" "NN=" "pOut=" "put=" "yes=1" "orig=" "vpn=" "nodel=" "Zeichen= " "noemptyLines=" "LL=" "L=" "O=" "um=" "F=") do set "%%~i"
::Syntaxpruefung: Quelle, Ziel, De- oder Nummerierung
:Parameter
set "Opt="%1""
setlocal enabledelayedexpansion
if "!Opt!" == """" (endlocal&goto :Paraend) else set "Opt=!Opt:"=!"
if "!Opt!" == "/?" endlocal&goto :help
for %%i in ("/" "/help" ) do if /i "!Opt!"=="%%~i" endlocal&goto :help
if /i "!Opt!"=="/?en" endlocal&for /f "usebackq tokens=1,*" %%i in ("%~f0") do if "%%i" == "::;" (echo %%j& exit /b 0) else if "%%i" == ":::" echo %%j
(for /f "delims=" %%i in ("!Opt!") do endlocal&set "Opt=%%i")||(endlocal&shift /1 &goto :Parameter)
:2ndParam
if not "%Opt:~ 0, 1%" =="/" (set "SL=") else set "SL=/"
for /f "tokens=1,* delims=/" %%a in ("%Opt%") do (if "%%b" == "" (set "Opt=") else set "Opt=/%%b"
set "px=%%a"
)
if not defined SL goto :InandOut
if "%px:~1,1%" == ":" set "px=%px:~0,1%%px:~2%"
if /i "%pX:~0,1%" == "Z" (
set /a yes + = 1
if "%pX:~1%" == "" (set "Zeichen=.") else set "Zeichen=%pX:~1%"
) else if /i "%pX%" == "E" (set "E=>nul"
) else if /i "%pX%" == "EQ" (set "E=>nul" & set "Q=>nul"
) else if /i "%pX%" == "Q" (set "Q=>nul"
) else if /i "%pX%" == "QE" (set "E=>nul" & set "Q=>nul"
) else if /i "%pX:~0,1%" == "N" (
set /a yes + = 1
if "%pX:~1%" == "-" (set "pN=D"
) else if "%pX:~1%" gtr "0" (set /a pN = %pX:~1%
) else if "%pX:~1%" == "0" (set "pN=0"
) else set "pN=N"
) else if /i "%pX:~0,1%" == "L" (
set /a yes + = 1
set L=1
if "%pX:~1%" == "-" (set "pN=D"
) else if "%pX:~1%" gtr "0" (set /a pN = %pX:~1%
) else if "%pX:~1%" == "0" (set "pN=0"
) else set "pN=N"
) else if /i "%pX%" == "F" (set "O=1"
for %%i in ("%px:~1%") do set "pOut=%%~dpi" & set "put=%%~nxi" & set "um=>>" & set "F=""
) else set "erropt=%pX%"
if defined Opt (goto :2ndParam) else shift /1 &goto :Parameter
:InandOut
if defined Input if not defined pOut for %%i in ("%px%") do set "pOut=%%~dpi" & set "put=%%~nxi" & set "um=>>" & set "F=""
if not defined Input for %%i in ("%px%") do set "InFile=%%~nxi"&set "Input=%%~i"
if defined Opt goto :2ndParam
shift /1 &goto :Parameter
:Paraend
for %%i in ("" "\" "." ".." "..." "....") do if "%Input%"=="%%~i" (echo Syntaxfehler! Bitte Quelldateinamen angeben! & set b=1 & goto :help )>&2
if not exist "%Input%" set b2=1 & goto :end
:: Zaehle Zeilen
findstr /n "^" "%Input%">"%temp%\Ltmp"
for /f "delims=:" %%i in ('find /c ":"^<"%temp%\Ltmp"') do set /a Full = %%i
(for /f "usebackq tokens=* delims=" %%i in ("%Input%") do @for /f %%j in ("%%i") do @echo.%%i
)>"%temp%\tmp"
findstr /n "^" "%temp%\tmp">"%temp%\Ftmp"
for /f "delims=:" %%i in ('find /c ":"^<"%temp%\Ftmp"') do set /a noempty = %%i
if defined erropt (echo ungueltige Option: %erropt% %E%
goto :syntax)>&2
::ist Quelle gleich Ziel? gleich Numberme?
if "%pOut%%put%" == "%~f0" set "orig=" & set "pOut=" & set "put=" & set "F=" & set "um="
if defined O if not defined output for %%i in ("%Input%") do set "pOut=%%~dpi" & set "put=%%~nxi" & set "um=>>" & set "F=""
if "%pOut%%put%" == "%Input%" set orig=%random%
if not defined O if defined orig if %yes% equ 1 set pN=N
if %Full% equ 0 goto :end
goto :next
:help
if defined b (echo. & echo gueltige Syntax: %E% & goto :syntax)>&2
echo Listet Dateien ^(mit Nummerierung^) zeilenweise ^(ohne Leerzeilen^) auf den
echo Bildschirm oder in eine Datei. Oder Entfernt die Nummerierung.
:syntax
(echo. & echo %~n0 [Laufwerk:][Pfad]Quelldatei [/F][Laufwerk:][Pfad][Zieldatei] %E%
echo [/N^|/L[:][WERT]] [/Z[:][ZEICHEN]] [/Q] [/E] %E%
echo [/?] Hilfe [/?en] credits and english short guide %E%
if defined b (exit /b 1) else if defined erropt goto :end)>&2
echo.&echo Quelldatei Muss vor der Zieldatei angegeben werden.&echo.
echo Zieldatei Wird die Zieldatei nicht angegeben wird der Inhalt auf dem
echo Bildschirm ausgegeben. Zieldatei Wird ueberschrieben.
echo OHNE AusgabeART wird OHNE Leerzeilen mit Vornullen und Minimum Zweistellig
echo Numeriert ^= [/l:2]. &echo.
echo Wenn Quell-Pfad-Datei und Ziel-Pfad-Datei gleich: Werden in der Quelldatei
echo OHNE AusgabeART und OHNE Option Z oder F NUR Leerzeilen entfernt.
echo Sonst wie Syntax.&echo.
echo /F Aktion in der Quelldatei ^(oder im Angegebenen Ziel^)&echo.
echo /N Gibt die AusgabeART an. OHNE Leerzeilen!
echo /L Gibt die AusgabeART an. MIT Leerzeilen!
echo WERT Wird WERT NICHT angegeben wird NICHT Nummeriert!
echo - Eine gefundene Durchgehende Nummerierung
echo mit Punkt oder
echo mit Doppelpunkt oder
echo mit LeerZeichen
echo ODER wie ZEICHEN wird Entfernt und
echo gibt exitcode 5 wenn Durchgehende Nummerierung fehlt.
echo Bei Option L- werden Leerzeilen nicht entfernt.&echo.
echo 0 Es wird ohne Vornullen Nummeriert.
echo 1 Ab der Zahl 1 wird Automatisch Vorgenullt (1-7, 0001-4702)
echo Oder Mindestene Stellenanzahl inklusive Vornullen (3^= 001-054)&echo.
echo /Z Trennzeichen zwischen Nummerierung und Text wird zum Punkt oder
echo wie ZEICHEN.
echo Fuer ZEICHEN : muss der Optionale Doppelpunkt auch mit angegeben
echo werden. /Z::
echo ZEICHEN Angabe von ein oder mehr Trennzeichen zur de- oder Nummerierung.&echo.
echo Achtung! Fuer Enthaltene Leer-/Sonderzeichen Syntax in " " setzen!
echo Beispiel: /z": :" ^(mindestens das Sonderzeichen muss Umschlossen sein^)
echo Bei Denummerierung gibt das erste Zeichen das Trennzeichen hinter
echo der Nummerrierung an, das letzte Zeichen bis wohin geloescht
echo wird. -^> Zeichenfolge wird Ueberprueft. Bei Denummerierung
echo keine Ziffern als erstes oder letztes Zeichen Verwenden.
echo Das letzte Zeichen nicht doppelt Verwenden.&echo.
echo /Q Meldungen werden NICHT Ausgegeben - Hilfe wird immer angezeigt!
echo /E Entspricht 2^>nul Errormeldungen werden NICHT Ausgegeben. ODER
echo /QE or /EQ Unterdrueckung aller Meldungen in einer Option!&echo.
echo Optionen koennen zusammenhaengend geschrieben werden zB: /N1/QE/Z wenn die
echo einzelne Option Z Keine Leerzeichen enthaelt. Doppelpunkte sind Optional.&echo.
echo Sonderzeichen: Falsche Ausgabe Nur auf Bildschirm! Im Dateiname:-^> setze " " &echo.
echo Die Anzahl Zeilen und Anzahl Leerzeilen der Quelldatei werden ausgegeben!&echo.
echo Statusmeldungen werden im Handle 3 ausgegeben
echo Errormeldungen werden im Handle 2 ausgegeben
exit /b 0
:next
::Statusmeldung für Vorgang
( ::Wenn Nummerierung entfernen
if %pN% == D (
if %noempty% gtr 0 (
if not "%pOut%" == "" (
if defined L (echo.
echo Nummerierung wird in "%put%" enfernt!
) else (echo.
if %noempty% lss %Full% (
echo Leerzeilen, Nummerierung werden in "%put%" enfernt!
) else echo "%put%" enthaelt keine Leerzeilen, Nummerierung wird entfernt!
) ) ) else set emptylines=1 & goto :end
) else if not %pN% == N (
::Wenn Nummeriert werden soll
if defined L (
if not "%pOut%" == "" (
if %noempty% lss %Full% (echo.
echo "%put%" wird Nummeriert!
) else (echo.
echo "%put%" enthaelt keine Leerzeilen, wird Nummeriert!
) ) ) else if %noempty% equ 0 (set emptylines=1 & goto :end
) else if not "%pOut%" == "" (echo.
echo "%put%" wird ohne Leerzeilen Nummeriert!
) )
::Wenn Leerzeilen entfernen
if %pN% == N (
if not defined L if %noempty% gtr 0 (
if %noempty% lss %Full% (
if not "%pOut%" == "" (echo.
echo Leerzeilen werden in "%put%" enfernt!
) ) else set noemptyLines=1 & goto :end
) else set emptylines=1 & goto :end
) )%Q% >&3
::Loesche vorhandene Zieldatei
if not "%pOut%%orig%%put%" == "" if exist "%pOut%%orig%%put%" del "%pOut%%orig%%put%"
::Erstelle extraDatei/Output fuer Leerzeilenentfernung oder Tempdatei fuer De- oder Nummerierung
if defined L if %pN% == N (
findstr "^" "%Input%" %um%%F%%pOut%%orig%%put%%F%
goto :end
)
if %pN% == N (
findstr "^" "%temp%\tmp" %um%%F%%pOut%%orig%%put%%F%
goto :end
)
if defined L if not %pN% == D set /a LL = Full & copy "%temp%\Ltmp" "%temp%\Ftmp" >nul
if not defined LL set /a LL = noempty
set NL=9
::mit oder ohne Vornull?
if %pN% == D (set "D=1"
set "NN=0"
goto :noZero
) else if %pN% lss 1 (set "NN=0"
goto :noZero
) else set "NN=1"
::Zaehlen der Automatischen oder Manuellen Vornullen
:testZero
if %NL% lss %LL% (set "NL=%NL%9"
set /a NN + = 1
goto :testZero
)
if %NN% gtr %pN% (set pN=%NN%) else set NN=%pN%
set NL=9
::Vornullen setzten
:withZero
if not %pN% == 1 (set "vpn=%vpN%0"
set /a pN - = 1
goto :withZero
)
::Spungziel bei keinen Vornullen oder nach Pruefung auf Nummerierung
:noZero
set /a pN = 0 , HNL = 0 , HL = 9
::Blockanfang De- oder Nummerierung
:read
::Keine Nummerierung gefunden?
if defined nodel if "%Zeichen%" == " " (set "nodel="
set "Zeichen=."
goto :noZero
) else if "%Zeichen%" == "." (set "nodel="
set "Zeichen=:"
goto :noZero
) else goto :end
::Schalter fuer Pruefung auf vorhandene Nummerierung oder Sprung zum Ende oder Einstellung Ziffernbreite
if defined D (
if %pN% == %LL% (
if not defined delNR (
set "delNR=1"
goto :noZero
) else goto :end
) else (set /a pN + = 1
) ) else if %pN% == %LL% (goto :end) else set /a pN + = 1
::Zaehler fuer Zeile und VorNullen Einstellung und Ruf Zeilenwahl
call :setline %pN%
if %HL% == %pN% (set "HNL=%NL%"
set "HL=%HL%9"
)
if %NN% gtr 0 if %NL% == %pN% (set "NL=%NL%9"
set /a NN - = 1
set "vpN=%vpN:~1%"
)
goto :read
::Zeilenauswahl zum Ueberspung
:setline
if 1 == %1 set "skip=" & goto :write
set /a skip = %1 - 1
set skip=Skip=%skip%
:write
::Test auf oder Entfernung einer Vorhandenen Nummerierung
if defined D (
if not defined delNR (
for /f "usebackq tokens=1,* delims=:" %%i in ("%temp%\Ltmp") do (
if defined nodel goto :eof
for /f "delims=%Zeichen:~-1%" %%k in ("%%j") do (
for /f "tokens=1,* delims=%Zeichen:~0,1%" %%l in ("%%k") do (
for /f "tokens=* delims=0" %%n in ("%%l") do if not "%%n%%m" == "%%i%Zeichen:~1,-1%" set "nodel=1"
) ) )
set "pN=%LL%" & goto :eof
) else (
for /f "delims=" %%h in ("%Zeichen%") do (
for /f "usebackq tokens=* delims=" %%i in ("%temp%\tmp") do (
set "Zeile=%%i"
setlocal enabledelayedexpansion
set "Zeile=!Zeile:*%%h=!"
if defined L (echo.!Zeile!
) else for /f %%j in ("!Zeile!") do echo.!Zeile!
endlocal
) )%um%%F%%pOut%%orig%%put%%F%
set "pN=%LL%" & goto :eof
) )
::Nummerieren
(
for /f "usebackq %skip% tokens=*" %%i in ("%temp%\Ftmp") do (
set "Zeile=%%i"
setlocal enabledelayedexpansion
for /f "delims=:" %%h in ("%%i") do set "HNNR=%%h"
for %%j in ("!HNNR!") do (
set "Zeile=!Zeile:*:=!"
echo.%vpN%%%~j%Zeichen%!Zeile!
if %%~j equ %LL% endlocal & set "pN=%%~j" & goto :eof
if %%~j equ %HL% endlocal & set "pN=%%~j" & goto :eof
endlocal
) ) )%um%%F%%pOut%%orig%%put%%F%
:end
(if defined b2 (echo Fehler! Quelldatei "%InPut%" nicht gefunden! %E%
exit /b 2)
(echo. %E% %Q%
) >&3
if defined nodel echo "%InFile%" enthaelt keine Nummerierung! %E%
if defined noemptyLines echo "%InFile%" enthaelt keine Leerzeilen %E%
if defined emptylines echo "%InFile%" enthaelt nur Leerzeilen %E%
if %Full% equ 0 echo "%InFile%" ist leer! %E%) >&2
if %Full% equ 0 goto :noren
if not defined orig goto :noren
if defined erropt goto :noren
if defined emptylines goto :noren
if defined noemptyLines goto :noren
if defined nodel goto :noren
move /y "%pOut%%orig%%put%" "%Input%" >nul
:noren
set /a Lempty = Full - noempty
(echo AnzahlZeilen %Full% AnzahlLeerzeilen %Lempty% %Q%
) >&3
if exist %temp%\Ftmp del %temp%\Ftmp
if defined erropt exit /b 3
if %Full% equ 0 exit /b 4
if defined noemptyLines exit /b 6
if defined nodel exit /b 5
if defined emptylines exit /b7
exit /b 0
:: -------------------schnapp------NumberMe.bat------------
Thanks to Biber
Für das Grundgerüst.
Thanks to bastla
für die Tipps der Überflüssigen Zeilen und Hilfeverbesserung
Updated at last: 22.02.2011 16:00
Tags: Text nummerieren, Dateiinhalt nummerieren, Textdatei nummerieren, Zeilennummern aus File entfernen, Batch Zeilen nummeriert, Script Zeilen nummerieren
Gruß Phil
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 118090
Url: https://administrator.de/contentid/118090
Ausgedruckt am: 21.11.2024 um 17:11 Uhr
12 Kommentare
Neuester Kommentar
Hallo Phil,
als Fingerübung ist das Thema ja immer gut geeignet,
eine schnellere und kaum verbesserungsfähige Version die auch Nummern wieder entfernen kann,
gibt es aber schon lange von
Ritchie Lawrence
Gruß
LotPings
als Fingerübung ist das Thema ja immer gut geeignet,
eine schnellere und kaum verbesserungsfähige Version die auch Nummern wieder entfernen kann,
gibt es aber schon lange von
Ritchie Lawrence
Gruß
LotPings
Moin pieh-ejdsch,
Ein "endgültiges" Skript, eine final version hat vermutlich noch kein ernsthafter Coder hinbekommen.
Aber ich bin vollauf zufrieden - mehr hatte ich wirklich nicht von meinem damaligen Mini-Workshop erhofft, als das es ein bisschen Appetit aufs Skripten und aufs Verfeinern macht und das die eine oder andere Codezeile auch im täglichen "Produktiveinsatz" Nutzen bringt.
Als "Tipp" finde ich Deine Weiterentwicklung durchaus "Hilfreich" und werde es entsprechend bewerten.
Danke und schönes Wochenende
Biber
So NumberMe ist jetzt endgültig fertig.
Genauer gesagt, die Version 1.0b ist jetzt released... Ein "endgültiges" Skript, eine final version hat vermutlich noch kein ernsthafter Coder hinbekommen.
Aber ich bin vollauf zufrieden - mehr hatte ich wirklich nicht von meinem damaligen Mini-Workshop erhofft, als das es ein bisschen Appetit aufs Skripten und aufs Verfeinern macht und das die eine oder andere Codezeile auch im täglichen "Produktiveinsatz" Nutzen bringt.
Als "Tipp" finde ich Deine Weiterentwicklung durchaus "Hilfreich" und werde es entsprechend bewerten.
Danke und schönes Wochenende
Biber