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

NumberMe Nummerieren, Denummerieren, Leerzeilen entfernen, Zeilen zählen,Trennzeichen(satz)auswahl ... die Aktuellste mit Beschreibung.

Tipp Entwicklung Batch & Shell

Mitglied: pieh-ejdsch

pieh-ejdsch (Level 2) - Jetzt verbinden

13.06.2009, aktualisiert 27.02.2011, 12384 Aufrufe, 12 Kommentare, 1 Danke

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

NumberMe.bat 1.9

Nummerieren und DeNummerieren von Textdateien
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

Was macht NumberMe - Dokumentation

Diese Dokumentation bezieht sich auf diese Version 1.9
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
01.
numberme "meine (2) .txt" 
02.
: oder das geht auch...wenn Du Dich im Verzeichnis befindest... 
03.
numberme numberme.cmd
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
01.
numberme "derPfad\dieDatei.txt" "derPfad\dieDatei.txt"
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.
01.
numberme "derPfad\die Datei.txt" /f
Die Leerzeilen können auch mit einzubezogen werden.
Nummerierung ausgeben und Leerzeilen auch Nummerieren
01.
numberme "meine Datei (1).txt" /L1
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
01.
numberme meinOriginal /Z "die Kopie" /L1
AnzahlZeilen 733 AnzahlLeerzeilen 154
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
01.
numberme "die Kopie" /N-/qe "die Kopie"
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.
01.
echo %errorlevel% 
02.
 0
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

NumberMe Exitcodes Errorlevel

Seit V1.6 Neue Versionsnummer 1.9

Errorlevel 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)

 * -... = wurde gefixt in V... (XLvl = Errorlevel wird angezeigt)
 * +... = Optional seit V...

NumberMe Script Programmcode

01.
NumberMe.bat
01.
:: -------------------schnipp------NumberMe.bat------------ 
02.
::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
03.
::: #NumberMe.bat Version 1.9 .. put line numbers into Files or delete 
04.
::: #Numbering if found or/and/only delete all emty lines wiht or without spaces; 
05.
::: #help and progress of batch in german; 
06.
::: #[/?en] english short guide, bevor code in batch 1 line behind ::: [/?] Help ; 
07.
::: #Version 0.03 Placed into the Public Domain by Biber3@hotmail.de 15.08.2004; 
08.
::: #modified from 1.0 - 1.9 by pieh-ejdsch@o2online.de 13.06.2009 - 22.02.2011, 
09.
::: #last Versions: 0.03, 1.0, 1.0b thanks to bastla, 1.1 ... 1,9 
10.
::: #supportet by www.administrator.de ; Bugs or Updates? Please feedback! 
11.
::: #---Put in this code to Editor, save as "all-filetype" named NumberMe.cmd 
12.
::: #---For install on Win System: press [WIN]+[R] , then type: %windir%\system32 
13.
::: #---press Enter and put in this File to ExplorerWindow which has opened up 
14.
::: #---now this Application works in Batch; CMD or [WIN]+[R] by typing this 
15.
::: #---BatchName(.cmd) with or without Extension.--------------------------------- 
16.
::: #------------------------------------------------------------------------------ 
17.
::: [/?] Help german only, but here is an english short guide for You; 
18.
::: Sourcefilename must be the first Option. All other Options from second till 
19.
::: sixth can be in much differrent array. Dubbel dot in Options can be lost. 
20.
::: Options include no space to string together as /N-/Q/Z  -or Seperately or other 
21.
::: sourcefilename for working batch always be needed, without target-path-filename only output on Screen; 
22.
::: [/f] for aktion in sourcefile or in target-path-filename 
23.
::: [/n:1] one-figure numbering with Automated PreZeroNumbering (1-7, 0001-4702) 
24.
::: (for example: [/n:5] not less than five-figure numbering-> 00001-00120); 
25.
::: [/n:0] setting for without PreZero (1-245); 
26.
::: [/n:-] deletes a numbered consecutively before space or Piont if found it 
27.
::: - or is it used to test for -> gives exitcode 5; 
28.
::: without [/n:] Auto PreZeroNumbering with not less than two-figure number just   like [/n:2]; 
29.
::: - only with [/n:] setting for without Numbering; 
30.
::: if you substitute [/N:] by [/L:] NumberMe will not be delete all empty lines, 
31.
::: syntax (behind dubble dot) takes effekt like than [/N:];  
32.
::: [/l:-] Denumbering without cleaning empty Lines;  
33.
::: [/Z:] change delimiter: space by point; or behind : Input other Delimiter(s) 
34.
::: to include Spaces or additional characters after delimiter ->Syntax must insert 
35.
::: between quotation marks for denumbering and incluce string to remove for, 
36.
::: -> be sure in string 1st and the last sign is not a number 
37.
::: ->be sure in string the last sign exist once; 
38.
::: [/Q] Quit modus: no Program message; been related works with E [/QE] 
39.
::: [/E] Quit modus: no Error message; been related works with Q [/EQ] 
40.
::: > Spaces for Path-File-Name or additional characters must insert between        quotation marks; 
41.
::: > if source(path)name is equal to target(path)name NumberMe will be effect all 
42.
::: > in sourcefile and without Options [/Z] [/N|/L] [only deletes all empty lines; 
43.
::: > additional characters only displayed  false on Screen;  
44.
::: output from sourcefile: number of all Lines and all empty Lines; 
45.
::: Programm messages Piped into the Handle 3 
46.
::: Error messages Piped into the handle 2 
47.
::: ------------------------------------------------------------------------------- 
48.
::: EXITCODES: [0] successful; [1] put in filename; [2] sourcefile not found; 
49.
::: [3] input incorrect Syntax; [4] file is empty; 
50.
::: [5] file is not numbered consecutively; [6] file is without empty lines only 
51.
::: [7] file is with empty lines only; 
52.
::; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
53.
@echo off & setlocal disabledelayedexpansion 
54.
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" 
55.
::Syntaxpruefung: Quelle, Ziel, De- oder Nummerierung 
56.
:Parameter 
57.
set "Opt="%1"" 
58.
setlocal enabledelayedexpansion 
59.
if "!Opt!" == """" (endlocal&goto :Paraend) else set "Opt=!Opt:"=!" 
60.
if "!Opt!" == "/?" endlocal&goto :help 
61.
for %%i in ("/" "/help" ) do if /i "!Opt!"=="%%~i" endlocal&goto :help 
62.
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 
63.
(for /f "delims=" %%i in ("!Opt!") do endlocal&set "Opt=%%i")||(endlocal&shift /1 &goto :Parameter) 
64.
:2ndParam 
65.
if not "%Opt:~ 0, 1%" =="/" (set "SL=") else set "SL=/" 
66.
for /f "tokens=1,* delims=/" %%a in ("%Opt%") do (if "%%b" == "" (set "Opt=") else set "Opt=/%%b" 
67.
	set "px=%%a" 
68.
69.
if not defined SL goto :InandOut 
70.
if "%px:~1,1%" == ":" set "px=%px:~0,1%%px:~2%" 
71.
if /i "%pX:~0,1%" == "Z" ( 
72.
	set /a yes + = 1 
73.
	if "%pX:~1%" == "" (set "Zeichen=.") else set "Zeichen=%pX:~1%" 
74.
) else if /i "%pX%" == "E" (set "E=>nul" 
75.
) else if /i "%pX%" == "EQ" (set "E=>nul" & set "Q=>nul" 
76.
) else if /i "%pX%" == "Q" (set "Q=>nul" 
77.
) else if /i "%pX%" == "QE" (set "E=>nul" & set "Q=>nul" 
78.
) else if /i "%pX:~0,1%" == "N" ( 
79.
	set /a yes + = 1 
80.
	if "%pX:~1%" == "-" (set "pN=D" 
81.
	) else if "%pX:~1%" gtr "0" (set /a pN = %pX:~1% 
82.
	) else if "%pX:~1%" == "0" (set "pN=0" 
83.
	) else set "pN=N" 
84.
) else if /i "%pX:~0,1%" == "L" ( 
85.
	set /a yes + = 1 
86.
	set L=1 
87.
	if "%pX:~1%" == "-" (set "pN=D" 
88.
	) else if "%pX:~1%" gtr "0" (set /a pN = %pX:~1% 
89.
	) else if "%pX:~1%" == "0" (set "pN=0" 
90.
	) else set "pN=N" 
91.
) else if /i "%pX%" == "F" (set "O=1" 
92.
	for %%i in ("%px:~1%") do set "pOut=%%~dpi" & set "put=%%~nxi" & set "um=>>" & set "F="" 
93.
) else set "erropt=%pX%" 
94.
if defined Opt (goto :2ndParam) else shift /1 &goto :Parameter 
95.
:InandOut 
96.
if defined Input if not defined pOut for %%i in ("%px%") do set "pOut=%%~dpi" & set "put=%%~nxi" & set "um=>>" & set "F="" 
97.
if not defined Input for %%i in ("%px%") do set "InFile=%%~nxi"&set "Input=%%~i" 
98.
if defined Opt goto :2ndParam 
99.
shift /1 &goto :Parameter 
100.
:Paraend 
101.
for %%i in ("" "\" "." ".." "..." "....") do if "%Input%"=="%%~i" (echo Syntaxfehler! Bitte Quelldateinamen angeben! & set b=1 & goto :help )>&2 
102.
if not exist "%Input%" set b2=1 & goto :end 
103.
:: Zaehle Zeilen 
104.
findstr /n "^" "%Input%">"%temp%\Ltmp" 
105.
for /f "delims=:" %%i in ('find /c ":"^<"%temp%\Ltmp"') do set /a Full = %%i 
106.
(for /f "usebackq tokens=* delims=" %%i in ("%Input%") do @for /f %%j in ("%%i") do @echo.%%i 
107.
)>"%temp%\tmp" 
108.
findstr /n "^" "%temp%\tmp">"%temp%\Ftmp" 
109.
for /f "delims=:" %%i in ('find /c ":"^<"%temp%\Ftmp"') do set /a noempty = %%i 
110.
if defined erropt (echo ungueltige Option: %erropt% %E% 
111.
	goto :syntax)>&2 
112.
::ist Quelle gleich Ziel? gleich Numberme? 
113.
if "%pOut%%put%" == "%~f0" set "orig=" & set "pOut=" & set "put=" & set "F=" & set "um=" 
114.
if defined O if not defined output for %%i in ("%Input%") do set "pOut=%%~dpi" & set "put=%%~nxi" & set "um=>>" & set "F="" 
115.
if "%pOut%%put%" == "%Input%" set orig=%random% 
116.
if not defined O if defined orig if %yes% equ 1 set pN=N 
117.
if %Full% equ 0 goto :end 
118.
goto :next 
119.
:help 
120.
if defined b (echo. & echo gueltige Syntax:  %E% & goto :syntax)>&2 
121.
echo Listet Dateien ^(mit Nummerierung^) zeilenweise ^(ohne Leerzeilen^) auf den 
122.
echo Bildschirm oder in eine Datei. Oder Entfernt die Nummerierung. 
123.
:syntax 
124.
(echo. & echo %~n0 [Laufwerk:][Pfad]Quelldatei [/F][Laufwerk:][Pfad][Zieldatei] %E% 
125.
echo  [/N^|/L[:][WERT]] [/Z[:][ZEICHEN]] [/Q] [/E] %E% 
126.
echo                              [/?] Hilfe [/?en] credits and english short guide %E% 
127.
if defined b (exit /b 1) else if defined erropt goto :end)>&2 
128.
echo.&echo  Quelldatei   Muss vor der Zieldatei angegeben werden.&echo.   
129.
echo  Zieldatei    Wird die Zieldatei nicht angegeben wird der Inhalt auf dem 
130.
echo               Bildschirm ausgegeben. Zieldatei Wird ueberschrieben. 
131.
echo  OHNE AusgabeART wird OHNE Leerzeilen mit Vornullen und Minimum Zweistellig 
132.
echo  Numeriert ^= [/l:2]. &echo. 
133.
echo  Wenn Quell-Pfad-Datei und Ziel-Pfad-Datei gleich: Werden in der Quelldatei 
134.
echo  OHNE AusgabeART und OHNE Option Z oder F NUR Leerzeilen entfernt. 
135.
echo  Sonst wie Syntax.&echo. 
136.
echo   /F          Aktion in der Quelldatei ^(oder im Angegebenen Ziel^)&echo. 
137.
echo   /N          Gibt die AusgabeART an.         OHNE      Leerzeilen! 
138.
echo   /L          Gibt die AusgabeART an.   MIT             Leerzeilen! 
139.
echo     WERT      Wird WERT NICHT angegeben wird NICHT Nummeriert! 
140.
echo     -          Eine gefundene Durchgehende Nummerierung  
141.
echo                mit Punkt oder 
142.
echo                mit Doppelpunkt oder 
143.
echo                mit LeerZeichen  
144.
echo               ODER wie ZEICHEN     wird Entfernt und 
145.
echo                gibt exitcode 5 wenn Durchgehende Nummerierung fehlt. 
146.
echo                Bei Option L- werden Leerzeilen nicht entfernt.&echo. 
147.
echo     0         Es wird ohne Vornullen Nummeriert. 
148.
echo     1         Ab der Zahl 1 wird Automatisch Vorgenullt (1-7, 0001-4702) 
149.
echo               Oder Mindestene Stellenanzahl inklusive Vornullen (3^= 001-054)&echo. 
150.
echo   /Z          Trennzeichen zwischen Nummerierung und Text wird zum Punkt oder 
151.
echo                wie ZEICHEN. 
152.
echo               Fuer ZEICHEN : muss der Optionale Doppelpunkt auch mit angegeben 
153.
echo               werden. /Z:: 
154.
echo     ZEICHEN   Angabe von ein oder mehr Trennzeichen zur de- oder Nummerierung.&echo. 
155.
echo      Achtung! Fuer Enthaltene Leer-/Sonderzeichen Syntax in " " setzen! 
156.
echo       Beispiel: /z": :" ^(mindestens das Sonderzeichen muss Umschlossen sein^) 
157.
echo               Bei Denummerierung gibt das erste Zeichen das Trennzeichen hinter 
158.
echo               der Nummerrierung an, das letzte Zeichen bis wohin geloescht 
159.
echo               wird. -^> Zeichenfolge wird Ueberprueft. Bei Denummerierung  
160.
echo               keine Ziffern als erstes oder letztes Zeichen Verwenden. 
161.
echo               Das letzte Zeichen nicht doppelt Verwenden.&echo. 
162.
echo   /Q          Meldungen werden NICHT Ausgegeben - Hilfe wird immer angezeigt! 
163.
echo   /E          Entspricht 2^>nul Errormeldungen werden NICHT Ausgegeben. ODER 
164.
echo   /QE or /EQ  Unterdrueckung aller Meldungen in einer Option!&echo. 
165.
echo  Optionen koennen zusammenhaengend geschrieben werden zB: /N1/QE/Z wenn die 
166.
echo  einzelne Option Z Keine Leerzeichen enthaelt. Doppelpunkte sind Optional.&echo. 
167.
echo  Sonderzeichen: Falsche Ausgabe Nur auf Bildschirm! Im Dateiname:-^> setze " "  &echo. 
168.
echo  Die Anzahl Zeilen und Anzahl Leerzeilen der Quelldatei werden ausgegeben!&echo. 
169.
echo  Statusmeldungen werden im Handle 3 ausgegeben 
170.
echo  Errormeldungen werden im Handle 2 ausgegeben 
171.
exit /b 0 
172.
:next 
173.
::Statusmeldung für Vorgang 
174.
(	::Wenn Nummerierung entfernen 
175.
	if %pN% == D ( 
176.
		if %noempty% gtr 0 ( 
177.
			if not "%pOut%" == "" ( 
178.
				if defined L (echo. 
179.
					echo    Nummerierung wird in "%put%" enfernt! 
180.
				) else (echo. 
181.
					if %noempty% lss %Full% ( 
182.
						echo    Leerzeilen, Nummerierung werden in "%put%" enfernt! 
183.
					) else echo    "%put%" enthaelt keine Leerzeilen, Nummerierung wird entfernt! 
184.
		)	)	) else set emptylines=1 & goto :end 
185.
	) else if not %pN% == N ( 
186.
	::Wenn Nummeriert werden soll 
187.
		if defined L ( 
188.
			if not "%pOut%" == "" ( 
189.
				if %noempty% lss %Full% (echo. 
190.
					echo    "%put%" wird Nummeriert! 
191.
				) else (echo. 
192.
					echo    "%put%" enthaelt keine Leerzeilen, wird Nummeriert! 
193.
		)	)	) else if %noempty% equ 0 (set emptylines=1 & goto :end 
194.
		) else if not "%pOut%" == "" (echo. 
195.
			echo    "%put%" wird ohne Leerzeilen Nummeriert! 
196.
	)	) 
197.
	::Wenn Leerzeilen entfernen 
198.
	if %pN% == N ( 
199.
		if not defined L if %noempty% gtr 0 ( 
200.
			if %noempty% lss %Full% ( 
201.
				if not "%pOut%" == "" (echo. 
202.
					echo    Leerzeilen werden in "%put%" enfernt! 
203.
			)	) else set noemptyLines=1 & goto :end 
204.
		) else set emptylines=1 & goto :end 
205.
)	)%Q% >&3 
206.
::Loesche vorhandene Zieldatei 
207.
if not "%pOut%%orig%%put%" == "" if exist "%pOut%%orig%%put%" del "%pOut%%orig%%put%" 
208.
::Erstelle extraDatei/Output fuer Leerzeilenentfernung oder Tempdatei fuer De- oder Nummerierung 
209.
if defined L if %pN% == N ( 
210.
	findstr "^" "%Input%" %um%%F%%pOut%%orig%%put%%F% 
211.
	goto :end 
212.
213.
if %pN% == N ( 
214.
	findstr "^" "%temp%\tmp" %um%%F%%pOut%%orig%%put%%F% 
215.
	goto :end 
216.
217.
if defined L if not %pN% == D set /a LL = Full & copy "%temp%\Ltmp" "%temp%\Ftmp" >nul 
218.
if not defined LL set /a LL = noempty 
219.
set NL=9 
220.
::mit oder ohne Vornull? 
221.
if %pN% == D (set "D=1" 
222.
	set "NN=0"		 
223.
	goto :noZero 
224.
) else if %pN% lss 1 (set "NN=0" 
225.
	goto :noZero 
226.
) else set "NN=1" 
227.
::Zaehlen der Automatischen oder Manuellen Vornullen 
228.
:testZero 
229.
if %NL% lss %LL% (set "NL=%NL%9" 
230.
	set /a NN + = 1 
231.
	goto :testZero 
232.
233.
if %NN% gtr %pN% (set pN=%NN%) else set NN=%pN% 
234.
set NL=9 
235.
::Vornullen setzten  
236.
:withZero 
237.
if not %pN% == 1 (set "vpn=%vpN%0" 
238.
	set /a pN - = 1 
239.
	goto :withZero 
240.
241.
::Spungziel bei keinen Vornullen oder nach Pruefung auf Nummerierung 
242.
:noZero 
243.
set /a pN = 0 , HNL = 0 , HL = 9 
244.
::Blockanfang De- oder Nummerierung  
245.
:read 
246.
::Keine Nummerierung gefunden? 
247.
if defined nodel if "%Zeichen%" == " " (set "nodel=" 
248.
	set "Zeichen=." 
249.
	goto :noZero 
250.
) else if "%Zeichen%" == "." (set "nodel=" 
251.
	set "Zeichen=:" 
252.
	goto :noZero 
253.
) else goto :end 
254.
::Schalter fuer Pruefung auf vorhandene Nummerierung oder Sprung zum Ende oder Einstellung Ziffernbreite 
255.
if defined D ( 
256.
	if %pN% == %LL% ( 
257.
		if not defined delNR ( 
258.
			set "delNR=1" 
259.
			goto :noZero 
260.
		) else goto :end 
261.
	) else (set /a pN + = 1 
262.
)	) else if %pN% == %LL% (goto :end) else set /a pN + = 1 
263.
::Zaehler fuer Zeile und VorNullen Einstellung und Ruf Zeilenwahl 
264.
call :setline %pN% 
265.
if %HL% == %pN% (set "HNL=%NL%" 
266.
	set "HL=%HL%9" 
267.
268.
if %NN% gtr 0 if %NL% == %pN% (set "NL=%NL%9" 
269.
		set /a NN - = 1 
270.
		set "vpN=%vpN:~1%" 
271.
272.
goto :read 
273.
::Zeilenauswahl zum Ueberspung 
274.
:setline 
275.
if 1 == %1 set "skip=" & goto :write 
276.
set /a skip = %1 - 1 
277.
set skip=Skip=%skip% 
278.
:write 
279.
::Test auf oder Entfernung einer Vorhandenen Nummerierung  
280.
if defined D ( 
281.
	if not defined delNR ( 
282.
		for /f "usebackq tokens=1,* delims=:" %%i in ("%temp%\Ltmp") do ( 
283.
			if defined nodel goto :eof 
284.
			for /f "delims=%Zeichen:~-1%" %%k in ("%%j") do ( 
285.
				for /f "tokens=1,* delims=%Zeichen:~0,1%" %%l in ("%%k") do ( 
286.
					for /f "tokens=* delims=0" %%n in ("%%l") do if not "%%n%%m" == "%%i%Zeichen:~1,-1%" set "nodel=1" 
287.
		)	)	) 
288.
		set "pN=%LL%" & goto :eof 
289.
	) else ( 
290.
		for /f "delims=" %%h in ("%Zeichen%") do ( 
291.
			for /f "usebackq tokens=* delims=" %%i in ("%temp%\tmp") do ( 
292.
				set "Zeile=%%i" 
293.
				setlocal enabledelayedexpansion 
294.
				set "Zeile=!Zeile:*%%h=!" 
295.
				if defined L (echo.!Zeile! 
296.
				) else for /f %%j in ("!Zeile!") do echo.!Zeile! 
297.
				endlocal 
298.
		)	)%um%%F%%pOut%%orig%%put%%F% 
299.
		set "pN=%LL%" & goto :eof	 
300.
)	) 
301.
::Nummerieren 
302.
303.
	for /f "usebackq %skip% tokens=*" %%i in ("%temp%\Ftmp") do ( 
304.
		set "Zeile=%%i" 
305.
		setlocal enabledelayedexpansion 
306.
		for /f "delims=:" %%h in ("%%i") do set "HNNR=%%h" 
307.
		for %%j in ("!HNNR!") do ( 
308.
			set "Zeile=!Zeile:*:=!" 
309.
			echo.%vpN%%%~j%Zeichen%!Zeile! 
310.
			if %%~j equ %LL% endlocal & set "pN=%%~j" & goto :eof 
311.
			if %%~j equ %HL% endlocal & set "pN=%%~j" & goto :eof 
312.
			endlocal 
313.
)	)	)%um%%F%%pOut%%orig%%put%%F% 
314.
:end 
315.
(if defined b2 (echo Fehler! Quelldatei "%InPut%" nicht gefunden! %E% 
316.
	exit /b 2) 
317.
(echo. %E% %Q% 
318.
) >&3 
319.
if defined nodel echo "%InFile%" enthaelt keine Nummerierung! %E% 
320.
if defined noemptyLines echo "%InFile%" enthaelt keine Leerzeilen %E% 
321.
if defined emptylines echo "%InFile%" enthaelt nur Leerzeilen %E% 
322.
if %Full% equ 0 echo "%InFile%" ist leer! %E%) >&2 
323.
if %Full% equ 0 goto :noren 
324.
if not defined orig goto :noren 
325.
if defined erropt goto :noren 
326.
if defined emptylines goto :noren 
327.
if defined noemptyLines goto :noren 
328.
if defined nodel goto :noren  
329.
move /y "%pOut%%orig%%put%" "%Input%" >nul 
330.
:noren 
331.
set /a Lempty = Full - noempty 
332.
(echo AnzahlZeilen %Full% AnzahlLeerzeilen %Lempty% %Q% 
333.
) >&3 
334.
if exist %temp%\Ftmp del %temp%\Ftmp 
335.
if defined erropt exit /b 3 
336.
if %Full% equ 0 exit /b 4 
337.
if defined noemptyLines exit /b 6 
338.
if defined nodel exit /b 5 
339.
if defined emptylines exit /b7 
340.
exit /b 0 
341.
:: -------------------schnapp------NumberMe.bat------------

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
Mitglied: LotPings
13.06.2009 um 11:37 Uhr
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
Bitte warten ..
Mitglied: pieh-ejdsch
13.06.2009 um 12:51 Uhr
Es ist ja auch nur eine MUBER ME und keine DENUMBER ME

Na sowas - gibt es schon - Was ist denn dann damit???

01.
027. :: if infile contains ASCII 172 then exit with errorlevel 3 
02.
028. findstr ¬ %1 >nul && ( 
03.
029.   >&2 echo/Error: Input file cannot be reliably numbered/de-numbered 
04.
030.   >&2 echo/by this script because it contains ASCII character 172. 
05.
031.   con:: 2>nul & goto :EOF 
06.
032. )
Jammert also rum bei Sonderzeichen.....!
Danke für den Tipp. (geschwindigkeit)
Ich nehm Troztdem die NumberMe Version

Gruß Phil
Bitte warten ..
Mitglied: pieh-ejdsch
13.06.2009 um 22:54 Uhr
So Die NumberMe ist jetzt endgültig fertig.
Die Geschwindigkeit ist auch fast wieder wie Vorher.

Sollte noch jemand Verbesserungsvorschläge haben (Biber ist das so Ok oder ...?)
lässt es sich darüber bestimmt diskutieren.

Gruß Phil
Bitte warten ..
Mitglied: Biber
13.06.2009 um 23:12 Uhr
Moin pieh-ejdsch,

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
Bitte warten ..
Mitglied: pieh-ejdsch
14.06.2009 um 23:35 Uhr
Neue Version 1.1
Änderungen im changelog

Gruß Phil
Bitte warten ..
Mitglied: pieh-ejdsch
17.06.2009 um 03:13 Uhr
Neue Version 1.2
Neue Funktionen
Änderungen im Changelog


Gruß Phil
Bitte warten ..
Mitglied: pieh-ejdsch
31.08.2009 um 00:07 Uhr
Neue Version 1.3
Neue Funktionen
Anderungen im Changelog

Hier ist nochmal die Version 1.2 falls es jemanden Interesiert wie schlampig ich gebatcht hab.....
für diese Versionsnummer ist der Support beendet...
01.
@echo off & setlocal 
02.
::NumberMe.bat Version 1.2 ... put line numbers into Files or delete Numering if found  
03.
::Version 0.03 Placed into the Public Domain by Biber3@hotmail.de 15.08.2004, 
04.
::modified to Version 1.0 - 1.2 by pieh-ejdsch 13.-17.06.2009, thanks to bastla 
05.
::last Versions 0.03; 1.0 thanks to bastla; 1.0b; 1.1 
06.
::supportet by www.administrator.de; changes: removed delayedexpansion (+!); 
07.
::[/?] add Help; [/n:1] (1 Means: number have onedigit)add Automated PreZeroNumbering (1-7;0001-4702); 
08.
::[/n:0] add setting for without PreZero; [/n:-] add delete Numbering if found it; 
09.
::(without[/n:]) Auto Nubering with less than twodigits; (with[/n:]) add setting for withoutNumbering; 
10.
::add Spaces for Path- and Files-name or additional characters between quotation marks; 
11.
:: without target-path-filename only output on Screen; 
12.
::additional characters only displayed  false on Screen;  
13.
::no Support for brackets in targetPathnames and targetFilenames, but Support in source path/file-names 
14.
if "%~1"=="" echo            Syntaxfehler! Bitte Quelldateinamen angeben! & set b=1 & goto :help 
15.
if "%~1"=="/?"  goto :help 
16.
set umbenamsen= 
17.
echo "%~2" | find "(" 1>nul 
18.
if not %errorlevel% == 1 set umbenamsen=1 
19.
echo "%~2" | find ")" 1>nul 
20.
if not %errorlevel% == 1 set umbenamsen=1 
21.
if defined umbenamsen echo. & echo Fehler! ^( ^) in ZielPfad/Dateiname! ZielPfad wechseln oder ZielDatei umbenennen! & exit /b 3 
22.
goto :next 
23.
:help 
24.
echo Listet Dateien ^(mit Nummerierung^) zeilenweise ohne Leerzeilen auf den 
25.
echo Bildschirm oder in eine Datei. Oder Entfernt die Nummerierung. & echo. 
26.
echo %~n0 ["][Pfad]Quelldatei["] [["][Pfad]Zieldatei["]] [/n:[Nummerierung]] & echo. 
27.
echo Wenn Quelldatei, Zieldatei und Pfad gleich werden in Quelldatei alle Leerzeilen 
28.
echo entfernt. In Quelldatei wird NUR bei Eingabe von [/n:[Nummerierung]] Nummeriert. 
29.
echo  Quelldatei        Wird immer benoetigt. 
30.
echo  Zieldatei         Wird die Zieldatei nicht angegeben wird der Inhalt auf dem 
31.
echo                    Bildschirm ausgegeben. Existiert diese wird sie geleoscht. 
32.
echo  " "               Vollstaendige Unterstuetzung von Umgebenden Anfuehrungs- 
33.
echo                    zeichen bei Leerzeichen im Pfad und Dateimanen. 
34.
echo  /n:               Gibt die Art der Nummerierung an. 
35.
echo                    Wird die Art nicht Angegeben erfolgt die Nummerierung mit 
36.
echo                    Automatischen Vornullen und Mindestens zweistellig. 
37.
echo     Nummerierung   Wird Nummerierung NICHT angegeben wird NICHT Nummeriert! & echo. 
38.
echo     -              Wird eine Nummerierung gefunden wird diese Entfernt. 
39.
echo     0              Es wird ohne Vornullen Numeriert. 
40.
echo     1              Ab der Zahl 1 wird Automatisch mit sovielen Vornullen 
41.
echo                    Nummeriert wie noetig sind. Ansonsten gibt Diese Zahl die 
42.
echo                    Stellenanzahl inklusive Vornullen an mit wecher 
43.
echo                    Mindestens Nummeriert wird. 
44.
echo Besonderheiten: Sonderzeichen werden nur auf dem Bildschirm falsch ausgegeben! 
45.
echo                 Klammern im ZielDateinamen und Pfad werden nicht unterstuetzt! 
46.
if defined b (exit /b 1) else goto :eof 
47.
:next 
48.
if not exist "%~1" (echo. & echo Fehler! Quelldatei "%~1" nicht gefunden! & exit /b 2) else (set yes=0 & set "orig=" & set "pN=" & set "vpn=") 
49.
for %%i in ( "con:" "/n:2" "%~2" "%3") do if not %%i == "" call :setting "%%~i" 
50.
if "%pOut%%put%" == "%~f1" set orig=%random% 
51.
if defined orig (if %yes% equ 1 (echo. & echo    Leerzeilen in "%~nx1" werden enfernt! & set pN=N) else (if %pN% == D (echo. & echo    Nummerierung wird aus "%~nx1" enfernt!) else (echo. & echo    "%~nx1" wird Nummeriert!))) 
52.
if not ["%pOut%%orig%%put%"]==["con:"] if exist "%pOut%%orig%%put%" del "%pOut%%orig%%put%" 
53.
if %pN% == N ((For /F "usebackq delims=" %%i in ("%~1") do echo %%i>>"%pOut%%orig%%put%") & goto :end) else ((if exist %temp%\tmp del %temp%\tmp) && for /f "usebackq delims=" %%i in ("%~1") do (set /a LL + = 1 & @echo %%i>>%temp%\tmp)) 
54.
::,for /f  "usebackq" %%i in ("%~1") do set /a LL + = 1 
55.
if "%LL%" == "" ( echo. & echo             Datei ist leer! & exit /b 4) else set NL=9 
56.
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" 
57.
:testZero 
58.
if %NL% lss %LL% (set "NL=%NL%9" & set /a NN + = 1 & goto :testZero) 
59.
if %NN% gtr %pN% (set pN=%NN%) else set NN=%pN% 
60.
set NL=9 
61.
:withZero 
62.
if not %pN% == 1 (set "vpn=%vpN%0" & set /a pN - = 1 & goto :withZero) 
63.
:noZero 
64.
set /a pN = 0 
65.
:read 
66.
if defined nodel (echo  "%~nx1" enthaelt keine Nummerierung! & goto :eof) 
67.
if defined D (if %pN% == %LL% (if not defined delNR (set "delNR=1" & goto :noZero) else goto :end) else (set /a pN + = 1 , N = 0)) else if %pN% == %LL% (goto :end) else (set /a pN + = 1 , N = 0) 
68.
set /a N + = 1 & set /a FN = %pN% & call :setline %pN% 
69.
if %NN% gtr 0 if %NL% == %pN% (set "NL=%NL%9" & set /a NN - = 1 & set "vpN=%vpN:~1%") 
70.
goto :read 
71.
:setline 
72.
if 1 == %1 goto :write 
73.
set /a skip = %1 - 1 
74.
set skip=Skip=%skip% 
75.
:write 
76.
if defined D (if not defined delNR (for /f "%skip% delims=0 " %%i in (%temp%\tmp) do (if not "%%i" == "%FN:0=%" set nodel=1) & goto :eof) else (for /f "%skip% tokens=1,* " %%i in (%temp%\tmp) do echo %%j>>"%pOut%%orig%%put%" & goto :eof)) 
77.
for /f "%skip% delims=" %%i in (%temp%\tmp) do echo %vpN%%pN% %%i>>"%pOut%%orig%%put%" & goto :eof 
78.
:setting 
79.
set pX=%~1 
80.
if /i "%pX:~0,3%"=="/n:" (set /a yes + = 1 & (if "%pX:~3%" == "-" (set "pN=D") else (if "%pX:~3%" gtr "0" (set /a pN = %pX:~3%) else (if "%pX:~3%" == "0" (set "pN=0") else set "pN=N")))) else if not defined pOut (set "pOut=%~1") else goto :setOtPt 
81.
goto :eof 
82.
:setOtPt 
83.
set "pOut=%~dp1" 
84.
set "put=%~nx1" 
85.
goto :eof 
86.
:end 
87.
if not defined orig goto :noren 
88.
del "%~f1" /f /q 
89.
ren "%pOut%%orig%%put%" "%~nx1" 
90.
:noren 
91.
echo. & echo            Fertig! & if exist %temp%\tmp del %temp%\tmp 
92.
goto :eof
Gruß Phil
Bitte warten ..
Mitglied: pieh-ejdsch
15.09.2009 um 04:37 Uhr
Neue Version 1.4
Neue Funktionen
Änderungen im Changelog

Hier ist Die alte Numberme version 1.3
01.
:: -------------------schnipp------NumberMe.bat------------ 
02.
::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
03.
::: #NumberMe.bat Version 1.3 .. put line numbers into Files or delete Numbering if 
04.
::: #found and/only delete all emty lines!; help and progress of batch in german; 
05.
::: #[/?en] english short guide, bevor code in batch one line behind :: [/?] Help ; 
06.
::: #Version 0.03 Placed into the Public Domain by Biber3@hotmail.de 15.08.2004,  
07.
::: #modified to Version 1.0 - 1.3 by pieh-ejdsch@o2online.de 13.06.-30.08.2009, 
08.
::: #last Versions: 0.03, 1.0, 1.0b thanks to bastla, 1.1, 1.2; 
09.
::: #supportet by www.administrator.de ; Bugs or Updates? Please feedback! 
10.
::: #---For install on Win System: press [WIN]+[R] , then type: %windir%\system32 
11.
::: #---press Enter and put in this File to ExplorerWindow which has opened up 
12.
::: #---now this Application works in Batch; CMD or [WIN]+[R] by typing this 
13.
::: #---BatchName(.cmd) with or without Extension.--------------------------------- 
14.
::: #for next Update projected: if you substitute [/N:] by [/L:] NumberMe will 
15.
::: #not be delete all empty lines, syntax behind dubble dot takes 
16.
::: #effekt like than [/N:]; 
17.
::: #------------------------------------------------------------------------------ 
18.
::: Suorcefilename must be the first Option. All other Options from second till 
19.
::: sixth can be in much differrent array. 
20.
::: [changes:] removed delayedexpansion for exclamation point;  
21.
::: [/?] Help german only, but here is an english short guide for you; 
22.
::: sourcefilename for working batch always be needed, without target-path-filename only output on Screen; 
23.
::: [/n:1] one-figure numbering with Automated PreZeroNumbering (1-7, 0001-4702) 
24.
::: (for example: [/n:5] not less than five-figure numbering-> 00001-00120); 
25.
::: [/n:0] setting for without PreZero (1-245); 
26.
::: [/n:-] deletes a numbered consecutively if found it or is it used to test for   -> gives exitcode 5; 
27.
::: without [/n:] Auto PreZeroNumbering with not less than two-figure number just   like [/n:2]; 
28.
::: -with [/n:] setting for without Numbering; 
29.
::: [/Z:] change delimiter: space by point; or behind : Input other Delimiter(s) 
30.
::: to include Spaces or additional characters after delimiter ->Syntax must insert 
31.
::: between quotation marks for denumbering and incluce string to remove for, 
32.
::: ->be sure in string the last sign exists once; 
33.
::: [/Q] Quit modus: no Program message; been related works with E  
34.
::: [/E] Quit modus: no Error message; been related works with Q 
35.
::: > Spaces for Path- and Files-name or additional characters must insert between  quotation marks; 
36.
::: > if source(path)name is equal to target(path)name NumberMe will be effect all  in sourcefile; 
37.
::: > additional characters only displayed  false on Screen;  
38.
::: > no Support for brackets in targetPathnames and targetFilenames but Support    in source path/file-names; 
39.
::: output from sourcefile: number of all Lines and all empty Lines; 
40.
::: exitcodes: [0] successful; [1] put in filename; [2] sourcefile not found; 
41.
::: [3] bracket in targetname not allowed; [4] file is empty or empty lines only; 
42.
::: [5] file is not numbered consecutively; [6] input incorrect Syntax; 
43.
::: [7] file is without empty lines only 
44.
::; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
45.
@echo off & setlocal 
46.
set "b=" &  set "E=" & set "Q=" & set "noempty=0" & set Full=0 & set umbenamsen= 
47.
for %%i in ("" "\" "." ".." "..." "....") do if "%~1"=="%%~i" (echo Syntaxfehler! Bitte Quelldateinamen angeben! & set b=1 & goto :help ) 
48.
for %%i in ("/" "/help" ) do if /i "%~1"=="%%~i" goto :help 
49.
if "%~1"=="/?" goto :help 
50.
if "%~1"=="/?en" for /f "usebackq tokens=1,*" %%i in ("%~f0") do if "%%i" == "::;" (echo %%j& exit /b 0) else if "%%i" == ":::" echo %%j 
51.
if not exist "%~1" set b2=1 & goto :end 
52.
for /f "delims=:" %%i in ('findstr /n .* "%~1"') do set /a Full + = 1 
53.
for /f "usebackq" %%i in ("%~1") do set /a noempty + = 1 
54.
::Klammerpruefung 
55.
echo "%~2" | findstr "( )" 1>nul&&set umbenamsen=1 
56.
echo "%~3" | findstr "( )" 1>nul&&set umbenamsen=1 
57.
echo "%~4" | findstr "( )" 1>nul&&set umbenamsen=1 
58.
echo "%~5" | findstr "( )" 1>nul&&set umbenamsen=1 
59.
echo "%~6" | findstr "( )" 1>nul&&set umbenamsen=1 
60.
if defined umbenamsen goto :bracket 
61.
goto :next 
62.
:help 
63.
if defined b (echo. & echo gueltige Syntax:  %E% & goto :syntax) 
64.
echo Listet Dateien ^(mit Nummerierung^) zeilenweise ohne Leerzeilen auf den 
65.
echo Bildschirm oder in eine Datei. Oder Entfernt die Nummerierung. 
66.
:syntax 
67.
echo. & echo %~n0 ["][Pfad\]Quelldatei["] [["][Pfad\]Zieldatei["]] [/N:[WERT]] 
68.
echo [/Q] [/E] [["]/Z:[Zeichen]["]]    [/?]  [/?en] credits and english short guide & if defined b exit /b 1 
69.
echo.&echo Quelldatei muss erste Option sein sonst ist die Reihenfolge egal.   
70.
echo  Zieldatei    Wird die Zieldatei nicht angegeben wird der Inhalt auf dem 
71.
echo               Bildschirm ausgegeben. Wird ueberschrieben. Nicht Erlaubt: ^) ^( 
72.
echo  " "          Vollstaendige Unterstuetzung von Umgebenden Anfuehrungszeichen  
73.
echo               bei Leer- ^& Sonderzeichen im Pfad und Dateinamen.&echo. 
74.
echo OHNE AusgabeART wird OHNE Leerzeilen mit Vornullen und Minimum Zweistellig  
75.
echo Numeriert ^= [/l:2]. Wenn Quelldatei, Zieldatei und Pfad gleich: Werden in 
76.
echo der Quelldatei OHNE AusgabeART NUR Leerzeilen entfernt. Sonst wie Syntax.&echo. 
77.
echo   N:          Gibt die AusgabeART an.         OHNE      Leerzeilen! 
78.
echo     WERT      Wird WERT NICHT angegeben wird NICHT Nummeriert! 
79.
echo     -         Eine gefundene Durchgehende Nummerierung wird Entfernt und 
80.
echo               gibt exitcode 5 wenn Durchgehende Nummerierung fehlt. 
81.
echo     0         Es wird ohne Vornullen Nummeriert. 
82.
echo     1         Ab der Zahl 1 wird Automatisch Vorgenullt (1-7, 0001-4702) 
83.
echo               Mindestens Stellenanzahl inklusive Vornullen (3^= 001-054)&echo. 
84.
echo   Z:          Leerzeichen hinter Nummerrierung wird zum Punkt oder wie Zeichen. 
85.
echo     Zeichen   Angabe von ein oder mehr Trennzeichen zur de- oder Nummerierung.&echo. 
86.
echo      Achtung! Fuer Enthaltene Leer-/Sonderzeichen Syntax mit / in " " setzen! 
87.
echo               Bei Denummerierung gibt das erste Zeichen das Trennzeichen hinter 
88.
echo               der Nummerrierung an, das zweite bzw letzte bis wohin gelöscht 
89.
echo               wird -^> das letzte Zeichen NICHT doppelt verwenden!&echo. 
90.
echo   Q           Meldungen werden NICHT Ausgegeben - Hilfe wird immer angezeigt! 
91.
echo   E           Errormeldungen werden NICHT Ausgegeben. ODER 
92.
echo   QE oder EQ  Unterdrueckung aller Meldungen in einer Option! 
93.
echo Sonderzeichen: Im Dateiname -^> setze "" !; Falsche Ausgabe Nur auf Bildschirm! 
94.
echo Die Anzahl Zeilen und Anzahl Leerzeilen der Quelldatei werden ausgegeben! 
95.
:bracket 
96.
echo   Klammern:      Werden im ZielDateinamen und Pfad nicht unterstuetzt! %E% 
97.
if defined umbenamsen goto :end 
98.
exit /b 0 
99.
:next 
100.
for %%i in ( "yes=0" "orig=" "pN=" "vpn=" "testprezero= " "Zeichen= " "noemptyLines=") do set %%i 
101.
::Syntaxpruefung: Zieldatei De- oder Nummerierung 
102.
for %%i in ( "con:" "/n:2" "%~2" "%~3" "%~4" "%~5" "%~6") do if not %%i == "" call :setting "%%~i" 
103.
::ist Quelle gleich Ziel? gleich Numberme? 
104.
if "%pOut%%put%" == "%~f0" set "orig=" & set "pOut=con:" & set "put=" 
105.
if "%pOut%%put%" == "%~f1" set orig=%random% 
106.
::Statusmeldung für Vorgang 
107.
if defined orig ( 
108.
	if %yes% equ 1 ( 
109.
		if "%noempty%" lss "%Full%" ( 
110.
			echo. %Q% 
111.
			echo    Leerzeilen in "%~nx1" werden enfernt! %Q% 
112.
			set pN=N 
113.
		) else set noemptyLines=1 & goto :end 
114.
	) else ( 
115.
		if %pN% == D ( 
116.
			echo. %Q% 
117.
			echo    Nummerierung wird aus "%~nx1" enfernt! %Q% 
118.
		) else ( 
119.
			if not %pN% == N ( 
120.
				echo. %Q% 
121.
				echo    "%~nx1" wird Nummeriert! %Q% 
122.
 
123.
			) else ( 
124.
				if "%noempty%" lss "%Full%" ( 
125.
					echo. %Q% 
126.
					echo    Leerzeilen in "%~nx1" werden enfernt! %Q% 
127.
					set pN=N 
128.
				) else set noemptyLines=1 & goto :end 
129.
130.
131.
132.
133.
::Loesche vorhandene Zieldatei 
134.
if not ["%pOut%%orig%%put%"]==["con:"] if exist "%pOut%%orig%%put%" del "%pOut%%orig%%put%" 
135.
::Erstelle extraDatei/Output fuer Leerzeilenentfernung oder Tempdatei für De- oder Nummerierung und Zaehle Zeilen 
136.
if %pN% == N ( 
137.
	For /F "usebackq delims=" %%i in ("%~1") do ( 
138.
		echo.%%i>>"%pOut%%orig%%put%" 
139.
		set /a LL + = 1 
140.
141.
	goto :end 
142.
) else ( 
143.
	(if exist %temp%\tmp del %temp%\tmp) && for /f "usebackq delims=" %%i in ("%~1") do ( 
144.
		set /a LL + = 1 
145.
		echo.%%i>>"%temp%\tmp" 
146.
147.
148.
set NL=9 
149.
::mit oder ohne Vornull? 
150.
if %pN% == D ( 
151.
	set "D=1" 
152.
	set "NN=0" 
153.
	goto :noZero 
154.
) else if %pN% lss 1 ( 
155.
	set "NN=0" 
156.
	goto :noZero 
157.
) else set "NN=1" 
158.
::Zaehlen der Automatischen oder Manuellen Vornullen 
159.
:testZero 
160.
if %NL% lss %LL% ( 
161.
	set "NL=%NL%9" 
162.
	set /a NN + = 1 
163.
	goto :testZero 
164.
165.
if %NN% gtr %pN% (set pN=%NN%) else set NN=%pN% 
166.
set NL=9 
167.
::Vornullen setzten  
168.
:withZero 
169.
if not %pN% == 1 ( 
170.
	set "vpn=%vpN%0" 
171.
	set /a pN - = 1 
172.
	goto :withZero 
173.
174.
::Spungziel bei keinen Vornullen oder nach Pruefung auf Nummerierung 
175.
:noZero 
176.
set /a pN = 0 
177.
::Blockanfang De- oder Nummerierung  
178.
:read 
179.
::Keine Nummerierung gefunden? 
180.
if defined nodel  goto :end 
181.
::Schalter fuer Pruefung auf vorhandene Nummerierung oder Sprung zum Ende oder Einstellung Ziffernbreite 
182.
if defined D ( 
183.
	if %pN% == %LL% ( 
184.
		if not defined delNR ( 
185.
			set "delNR=1" 
186.
			goto :noZero 
187.
		) else goto :end 
188.
	) else ( 
189.
		set /a pN + = 1 , N = 0 
190.
191.
) else if %pN% == %LL% (goto :end) else set /a pN + = 1 , N = 0 
192.
::Zaehler fuer Zeile und VorNullen Einstellung und Ruf Zeilenwahl 
193.
set /a N + = 1 & set /a FN = %pN% & call :setline %pN% 
194.
if %NN% gtr 0 if %NL% == %pN% ( 
195.
	set "NL=%NL%9" 
196.
	set /a NN - = 1 
197.
	set "vpN=%vpN:~1%" 
198.
199.
goto :read 
200.
::Zeilenauswahl zum Ueberspung 
201.
:setline 
202.
if 1 == %1 set "skip=" & goto :write 
203.
set /a skip = %1 - 1 
204.
set skip=Skip=%skip% 
205.
:write 
206.
::Test auf oder Entfernung einer Vorhandenen Nummerierung  
207.
if defined D ( 
208.
	if not defined delNR ( 
209.
		for /f "%skip% tokens=1,* delims=%Zeichen:~0,1%" %%i in (%temp%\tmp) do ( 
210.
			if not "%%i" == "%FN%" ( 
211.
				set "testprezero=%%i" 
212.
				call :prezero 
213.
214.
			goto :eof 
215.
216.
	) else for /f "%skip% tokens=1,* delims=%Zeichen:~-1%" %%i in (%temp%\tmp) do ( 
217.
		echo.%%j>>"%pOut%%orig%%put%" 
218.
		goto :eof 
219.
220.
221.
::Schreibe: (Vornull)Nummer Trenner und Zeile 
222.
for /f "%skip% delims=" %%i in (%temp%\tmp) do ( 
223.
	echo.%vpN%%pN%%Zeichen%%%i>>"%pOut%%orig%%put%" 
224.
	goto :eof 
225.
226.
::Sprungziel Teste auf Vornullen zum Denummerieren 
227.
:prezero 
228.
if "%testprezero:~ 0, 1%" == "0" set "testprezero=%testprezero:~ 1%" & goto :prezero 
229.
if not "%testprezero%" == "%FN%" set nodel=1 
230.
goto :eof 
231.
::Sprungziel Syntaxeinstellungen 
232.
:setting 
233.
set "pX=%~1" 
234.
if /i "%pX:~0,3%" == "/z:" ( 
235.
	if "%pX:~3%" == "" (set "Zeichen=.") else set "Zeichen=%pX:~3%" 
236.
) else if /i "%pX%"=="/e" (set "E=>nul") else if /i "%pX%" == "/q" (set "Q=>nul") else if /i "%pX%" == "/eq" (set "E=>nul" & set "Q=>nul") else if /i "%pX%" == "/qe" (set "E=>nul" & set "Q=>nul") else if /i "%pX:~0,3%" == "/n:" ( 
237.
	set /a yes + = 1 
238.
	if "%pX:~3%" == "-" (set "pN=D") else ( 
239.
		if "%pX:~3%" gtr "0" (set /a pN = %pX:~3%) else ( 
240.
			if "%pX:~3%" == "0" (set "pN=0") else set "pN=N" 
241.
242.
243.
) else if not "%pX:~0,1%" == "/" ( 
244.
	if not defined pOut (set "pOut=%~1") else ( 
245.
		set "pOut=%~dp1" 
246.
		set "put=%~nx1" 
247.
		if "%~n1" == "" (set "pout=con:" & set "put=") 
248.
249.
) else set "erropt=%pX:~1%" 
250.
goto :eof 
251.
:end 
252.
if defined b2 ( 
253.
	echo Fehler! Quelldatei "%~1" nicht gefunden! %E% 
254.
	exit /b 2 
255.
256.
if defined nodel echo "%~nx1" enthaelt keine Nummerierung! %E% 
257.
if defined noemptyLines echo "%~nx1" enthaelt keine Leerzeilen %Q% 
258.
if %noempty% equ 0 echo "%~nx1" ist leer! %E% 
259.
if defined erropt echo ungueltige Option %erropt% %E% 
260.
if not defined orig goto :noren 
261.
if defined noemptyLines goto :noren 
262.
if defined nodel goto :noren  
263.
move /y "%pOut%%orig%%put%" "%~1" 
264.
:noren 
265.
set /a Lempty = Full - noempty 
266.
echo AnzahlZeilen %Full% AnzahlLeerzeilen %Lempty% %Q% 
267.
if exist %temp%\tmp del %temp%\tmp 
268.
if defined umbenamsen exit /b 3 
269.
if defined erropt exit /b 6 
270.
if %noempty% equ 0 exit /b 4 
271.
if defined noemptyLines exit /b 7 
272.
if defined nodel exit /b 5 
273.
exit /b 0 
274.
:: -------------------schnapp------NumberMe.bat------------
Bitte warten ..
Mitglied: pieh-ejdsch
16.09.2009 um 05:47 Uhr
Neue Version 1.5
nochn paar Bugfixes Behoben
ist sozusagen die Final Version
Änderungen im Changelog

Hier ist Die alte Numberme version 1.4
01.
:: -------------------schnipp------NumberMe.bat------------ 
02.
::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
03.
::: #NumberMe.bat Version 1.4 .. put line numbers into Files or delete Numbering if 
04.
::: #found or/and/only delete all emty lines; help and progress of batch in german; 
05.
::: #[/?en] english short guide, bevor code in batch 1 line behind ::: [/?] Help ; 
06.
::: #Version 0.03 Placed into the Public Domain by Biber3@hotmail.de 15.08.2004; 
07.
::: #modified to Version 1.0 - 1.4 by pieh-ejdsch@o2online.de 13.06.-15.09.2009, 
08.
::: #last Versions: 0.03, 1.0, 1.0b thanks to bastla, 1.1, 1.2, 1.3; 
09.
::: #supportet by www.administrator.de ; Bugs or Updates? Please feedback! 
10.
::: #---Put in this code to Editor, save as "all-filetype" named NumberMe.cmd 
11.
::: #---For install on Win System: press [WIN]+[R] , then type: %windir%\system32 
12.
::: #---press Enter and put in this File to ExplorerWindow which has opened up 
13.
::: #---now this Application works in Batch; CMD or [WIN]+[R] by typing this 
14.
::: #---BatchName(.cmd) with or without Extension.--------------------------------- 
15.
::: #------------------------------------------------------------------------------ 
16.
::: Suorcefilename must be the first Option. All other Options from second till 
17.
::: sixth can be in much differrent array. Dubbel dot in Options can be lost. 
18.
::: Options include no space to string together as /N-/Q/Z  -or Seperately or other 
19.
::: [/?] Help german only, but here is an english short guide for You; 
20.
::: sourcefilename for working batch always be needed, without target-path-filename only output on Screen; 
21.
::: [/n:1] one-figure numbering with Automated PreZeroNumbering (1-7, 0001-4702) 
22.
::: (for example: [/n:5] not less than five-figure numbering-> 00001-00120); 
23.
::: [/n:0] setting for without PreZero (1-245); 
24.
::: [/n:-] deletes a numbered consecutively before space or Piont if found it 
25.
::: - or is it used to test for -> gives exitcode 5; 
26.
::: without [/n:] Auto PreZeroNumbering with not less than two-figure number just   like [/n:2]; 
27.
::: - only with [/n:] setting for without Numbering; 
28.
::: if you substitute [/N:] by [/L:] NumberMe will not be delete all empty lines, 
29.
::: syntax (behind dubble dot) takes effekt like than [/N:];  
30.
::: [/l:-] only works like than [/n:-]; !!!! in Option L dubbeldots at Beginn be lost; 
31.
::: [/Z:] change delimiter: space by point; or behind : Input other Delimiter(s) 
32.
::: to include Spaces or additional characters after delimiter ->Syntax must insert 
33.
::: between quotation marks for denumbering and incluce string to remove for, 
34.
::: ->be sure in string the last sign exists once; 
35.
::: [/Q] Quit modus: no Program message; been related works with E  
36.
::: [/E] Quit modus: no Error message; been related works with Q 
37.
::: > Spaces for Path- and Files-name or additional characters must insert between  quotation marks; 
38.
::: > if source(path)name is equal to target(path)name NumberMe will be effect all 
39.
::: > in sourcefile and without Options [/Z] [/N|/L] only deletes all empty lines;  
40.
::: > additional characters only displayed  false on Screen;  
41.
::: ::: output from sourcefile: number of all Lines and all empty Lines; 
42.
::: exitcodes: [0] successful; [1] put in filename; [2] sourcefile not found; 
43.
::: [3] input incorrect Syntax; [4] file is empty or empty lines only; 
44.
::: [5] file is not numbered consecutively; [6] file is without empty lines only 
45.
::; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
46.
@echo off & setlocal 
47.
set "b=" &  set "E=" & set "Q=" & set "noempty=0" & set Full=0 
48.
for %%i in ("" "\" "." ".." "..." "....") do if "%~1"=="%%~i" (echo Syntaxfehler! Bitte Quelldateinamen angeben! & set b=1 & goto :help ) 
49.
for %%i in ("/" "/help" ) do if /i "%~1"=="%%~i" goto :help 
50.
if "%~1"=="/?" goto :help 
51.
if /i "%~1"=="/?en" for /f "usebackq tokens=1,*" %%i in ("%~f0") do if "%%i" == "::;" (echo %%j& exit /b 0) else if "%%i" == ":::" echo %%j 
52.
if not exist "%~1" set b2=1 & goto :end 
53.
for /f "delims=:" %%i in ('findstr /n .* "%~1"') do set /a Full + = 1 
54.
for /f "usebackq" %%i in ("%~1") do set /a noempty + = 1 
55.
goto :next 
56.
:help 
57.
if defined b (echo. & echo gueltige Syntax:  %E% & goto :syntax) 
58.
echo Listet Dateien ^(mit Nummerierung^) zeilenweise ^(ohne Leerzeilen^) auf den 
59.
echo Bildschirm oder in eine Datei. Oder Entfernt die Nummerierung. 
60.
:syntax 
61.
echo. & echo %~n0 ["][Pfad\]Quelldatei["] [["][Pfad\]Zieldatei["]] [/N^|/L[:][WERT]] 
62.
echo  [["]/Z[:][Zeichen]["]] [/Q] [/E]   [/?] [/?en] credits and english short guide& if defined b (exit /b 1) else if defined erropt goto :end 
63.
echo.&echo  Quelldatei   muss die erste Option sein sonst ist die Reihenfolge egal.&echo.   
64.
echo  Zieldatei    Wird die Zieldatei nicht angegeben wird der Inhalt auf dem 
65.
echo               Bildschirm ausgegeben. Zieldatei Wird ueberschrieben. 
66.
echo  " "          Vollstaendige Unterstuetzung von Umgebenden Anfuehrungszeichen  
67.
echo               bei Leer- ^& Sonderzeichen im Pfad und Dateinamen.&echo. 
68.
echo  OHNE AusgabeART wird OHNE Leerzeilen mit Vornullen und Minimum Zweistellig 
69.
echo  Numeriert ^= [/l:2]. Wenn Quelldatei, Zieldatei und Pfad gleich: Werden in 
70.
echo  der Quelldatei OHNE AusgabeART und OHNE Option Z NUR Leerzeilen entfernt. 
71.
echo  Sonst wie Syntax.&echo. 
72.
echo   N           Gibt die AusgabeART an.         OHNE      Leerzeilen! 
73.
echo   L           Gibt die AusgabeART an.   MIT             Leerzeilen! 
74.
echo     WERT      Wird WERT NICHT angegeben wird NICHT Nummeriert! 
75.
echo     -         Eine gefundene Durchgehende Nummerierung mit Punkt 
76.
echo               oder mit LeerZeichen wird Entfernt und 
77.
echo               gibt exitcode 5 wenn Durchgehende Nummerierung fehlt. 
78.
echo     0         Es wird ohne Vornullen Nummeriert. 
79.
echo     1         Ab der Zahl 1 wird Automatisch Vorgenullt (1-7, 0001-4702) 
80.
echo               Oder Mindestene Stellenanzahl inklusive Vornullen (3^= 001-054) 
81.
echo               Die Option N- und L- sind Identisch.&echo. 
82.
echo   Z           Leerzeichen hinter Nummerrierung wird zum Punkt oder wie Zeichen. 
83.
echo     Zeichen   Angabe von ein oder mehr Trennzeichen zur de- oder Nummerierung.&echo. 
84.
echo      Achtung! Fuer Enthaltene Leer-/Sonderzeichen Syntax mit / in " " setzen! 
85.
echo               Bei Denummerierung gibt das erste Zeichen das Trennzeichen hinter 
86.
echo               der Nummerrierung an, das zweite bzw letzte bis wohin gelöscht 
87.
echo               wird -^> das letzte Zeichen NICHT doppelt verwenden!&echo. 
88.
echo   Q           Meldungen werden NICHT Ausgegeben - Hilfe wird immer angezeigt! 
89.
echo   E           Errormeldungen werden NICHT Ausgegeben. ODER 
90.
echo   QE oder EQ  Unterdrueckung aller Meldungen in einer Option!&echo. 
91.
echo  Optionen koennen zusammenhaengend geschrieben werden zB: /N1/QE/Z wenn die 
92.
echo  einzelne Option Z Keine Leerzeichen enthaelt. Doppelpunkte sind Optional.&echo. 
93.
echo  Sonderzeichen: Falsche Ausgabe Nur auf Bildschirm! Im Dateiname:-^> setze " "  &echo. 
94.
echo  Die Anzahl Zeilen und Anzahl Leerzeilen der Quelldatei werden ausgegeben!&echo. 
95.
echo  Achtung! bei Der Option L gehen immer Doppelpunkte am Anfang verloren! 
96.
echo  Dies gilt auch fuer das Trennzeichen Space bzw. Punkt bei Z bei Entfernung 
97.
echo  der Nummerierung. Daher geht die Nummerierung mit N langsamer. 
98.
exit /b 0 
99.
:next 
100.
for %%i in ( "yes=0" "orig=" "pN=" "vpn=" "testprezero= " "Zeichen= " "noemptyLines=" "LL=" "L=") do set %%i 
101.
::Syntaxpruefung: Zieldatei De- oder Nummerierung 
102.
for %%i in ( "con:" "/n:2" "%~2" "%~3" "%~4" "%~5" "%~6") do if not %%i == "" set "pX=%%~i" & call :setting 
103.
if defined erropt (echo ungueltige Option: %erropt% %E% 
104.
	goto :syntax) 
105.
::ist Quelle gleich Ziel? gleich Numberme? 
106.
if "%pOut%%put%" == "%~f0" set "orig=" & set "pOut=con:" & set "put=" 
107.
if "%pOut%%put%" == "%~f1" set orig=%random% 
108.
::Statusmeldung für Vorgang 
109.
if defined orig ( 
110.
	if %yes% equ 1 ( 
111.
		if %noempty% lss %Full% ( 
112.
			echo. %Q% 
113.
			echo    Leerzeilen in "%~nx1" werden enfernt! %Q% 
114.
			set pN=N 
115.
		) else set noemptyLines=1 & goto :end 
116.
	) else ( 
117.
		if %pN% == D ( 
118.
			echo. %Q% 
119.
			echo    Nummerierung wird aus "%~nx1" enfernt! %Q% 
120.
		) else ( 
121.
			if not %pN% == N ( 
122.
				echo. %Q% 
123.
				echo    "%~nx1" wird Nummeriert! %Q% 
124.
			) else ( 
125.
				if not defined L if %noempty% lss %Full% ( 
126.
					echo. %Q% 
127.
					echo    Leerzeilen in "%~nx1" werden enfernt! %Q% 
128.
					set pN=N 
129.
				) else set noemptyLines=1 & goto :end 
130.
)	)	)	) 
131.
::Loesche vorhandene Zieldatei 
132.
if not ["%pOut%%orig%%put%"]==["con:"] if exist "%pOut%%orig%%put%" del "%pOut%%orig%%put%" 
133.
::Erstelle extraDatei/Output fuer Leerzeilenentfernung oder Tempdatei für De- oder Nummerierung und Zaehle Zeilen 
134.
if %noempty% equ %Full% set "L=" 
135.
if defined L if %pN% == N (for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%~1"') do echo.%%j>>"%pOut%%orig%%put%" 
136.
	goto :end 
137.
138.
if %pN% == N (for /F "usebackq delims=" %%i in ("%~1") do echo.%%i>>"%pOut%%orig%%put%" 
139.
	goto :end 
140.
141.
if exist %temp%\tmp del %temp%\tmp 
142.
if defined L if not %pN% == D for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%~1"') do (echo.%%j>>"%temp%\tmp" 
143.
	set /a LL + = 1 
144.
145.
if not defined LL for /f "usebackq delims=" %%i in ("%~1") do set /a LL + = 1 & echo.%%i>>"%temp%\tmp" 
146.
set NL=9 
147.
::mit oder ohne Vornull? 
148.
if %pN% == D (set "D=1" 
149.
	set "NN=0"		 
150.
	goto :noZero 
151.
) else if %pN% lss 1 (set "NN=0" 
152.
	goto :noZero 
153.
) else set "NN=1" 
154.
::Zaehlen der Automatischen oder Manuellen Vornullen 
155.
:testZero 
156.
if %NL% lss %LL% ( 
157.
	set "NL=%NL%9" 
158.
	set /a NN + = 1 
159.
	goto :testZero 
160.
161.
if %NN% gtr %pN% (set pN=%NN%) else set NN=%pN% 
162.
set NL=9 
163.
::Vornullen setzten  
164.
:withZero 
165.
if not %pN% == 1 ( 
166.
	set "vpn=%vpN%0" 
167.
	set /a pN - = 1 
168.
	goto :withZero 
169.
170.
::Spungziel bei keinen Vornullen oder nach Pruefung auf Nummerierung 
171.
:noZero 
172.
set /a pN = 0 , HNL = 0 , HL = 9 
173.
::Blockanfang De- oder Nummerierung  
174.
:read 
175.
::Keine Nummerierung gefunden? 
176.
if defined nodel if "%Zeichen%" == " " (set "nodel=" & set "Zeichen=." & goto :noZero) else goto :end 
177.
::Schalter fuer Pruefung auf vorhandene Nummerierung oder Sprung zum Ende oder Einstellung Ziffernbreite 
178.
if defined D ( 
179.
	if %pN% == %LL% ( 
180.
		if not defined delNR ( 
181.
			set "delNR=1" 
182.
			goto :noZero 
183.
		) else goto :end 
184.
	) else (set /a pN + = 1 
185.
186.
) else if %pN% == %LL% (goto :end) else set /a pN + = 1 
187.
::Zaehler fuer Zeile und VorNullen Einstellung und Ruf Zeilenwahl 
188.
call :setline %pN% 
189.
if %HL% == %pN% (set "HNL=%NL%" 
190.
	set "HL=%HL%9" 
191.
192.
if %NN% gtr 0 (if %NL% == %pN% (set "NL=%NL%9"set /a NN - = 1 
193.
		set "vpN=%vpN:~1%" 
194.
)	) 
195.
goto :read 
196.
::Zeilenauswahl zum Ueberspung 
197.
:setline 
198.
if 1 == %1 set "skip=" & goto :write 
199.
set /a skip = %1 - 1 
200.
set skip=Skip=%skip% 
201.
:write 
202.
::Test auf oder Entfernung einer Vorhandenen Nummerierung  
203.
if defined D ( 
204.
	if not defined delNR ( 
205.
		for /f "%skip% tokens=1,* delims=%Zeichen:~0,1%" %%i in (%temp%\tmp) do ( 
206.
			if not "%%i" == "%pN%" ( 
207.
				set "testprezero=%%i" 
208.
				call :prezero 
209.
210.
			goto :eof 
211.
212.
	) else (for /f "tokens=1,* delims=%Zeichen:~-1%" %%i in (%temp%\tmp) do echo.%%j>>"%pOut%%orig%%put%" 
213.
		set "pN=%LL%" & goto :eof	 
214.
)	) 
215.
::Schreibe: (Vornull)Nummer Trenner und Zeile 
216.
if not defined L for /f "%skip% delims=" %%i in (%temp%\tmp) do ( 
217.
	echo.%vpN%%pN%%Zeichen%%%i>>"%pOut%%orig%%put%" 
218.
	goto :eof 
219.
220.
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%temp%\tmp"') do ( 
221.
	if %HL% lss %%i goto :eof 
222.
	if %LL% lss %%i goto :eof 
223.
	if %HNL% lss %%i (echo.%vpN%%%i%Zeichen%%%j>>"%pOut%%orig%%put%" 
224.
		set /a pN=%%i 
225.
)	) 
226.
goto :eof 
227.
::Sprungziel Teste auf Vornullen zum Denummerieren 
228.
:prezero 
229.
if "%testprezero:~ 0, 1%" == "0" set "testprezero=%testprezero:~ 1%" & goto :prezero 
230.
if not "%testprezero%" == "%pN%" set nodel=1 
231.
goto :eof 
232.
::Sprungziel Syntaxeinstellungen 
233.
:setting 
234.
if not "%px:~ 0, 1%" =="/" goto :output  
235.
for /f "tokens=1-4 delims=/" %%a in ("%px%") do for %%i in ("%%~a" "%%~b" "%%~c" "%%~d") do if not "%%~i" == "" set "px=%%~i" & call :option 
236.
goto :eof 
237.
:option 
238.
if "%px:~1,1%" == ":" set "px=%px:~0,1%%px:~2%" 
239.
if /i "%pX:~0,1%" == "Z" ( 
240.
	set /a yes + = 1 
241.
	if "%pX:~1%" == "" (set "Zeichen=.") else set "Zeichen=%pX:~1%" 
242.
) else if /i "%pX:~0,1%" == "E" (set "E=>nul" if /i "%pX:~1%" == "Q" set "Q=>nul" 
243.
) else if /i "%pX:~0,1%" == "Q" (set "Q=>nul" if /i "%pX:~1%" == "E" set "E=>nul" 
244.
) else if /i "%pX:~0,1%" == "N" ( 
245.
	set /a yes + = 1 
246.
	if "%pX:~1%" == "-" (set "pN=D" 
247.
	) else if "%pX:~1%" gtr "0" (set /a pN = %pX:~1% 
248.
	) else if "%pX:~1%" == "0" (set "pN=0" 
249.
	) else set "pN=N" 
250.
) else if /i "%pX:~0,1%" == "L" ( 
251.
	set /a yes + = 1 
252.
	set L=1 
253.
	if "%pX:~1%" == "-" (set "pN=D" 
254.
	) else if "%pX:~1%" gtr "0" (set /a pN = %pX:~1% 
255.
	) else if "%pX:~1%" == "0" (set "pN=0" 
256.
	) else set "pN=N" 
257.
) else set "erropt=%pX%" 
258.
goto :eof 
259.
:output 
260.
if not defined pOut set "pOut=%px%" & goto :eof 
261.
for %%i in ("%px%") do set "pOut=%%~dpi" & set "put=%%~nxi" 
262.
if not defined put set "pout=con:" & set "put=" 
263.
goto :eof 
264.
:end 
265.
if defined b2 ( 
266.
	echo Fehler! Quelldatei "%~1" nicht gefunden! %E% 
267.
	exit /b 2 
268.
269.
if defined nodel echo "%~nx1" enthaelt keine Nummerierung! %E% 
270.
if defined noemptyLines echo "%~nx1" enthaelt keine Leerzeilen %Q% 
271.
if %noempty% equ 0 echo "%~nx1" ist leer! %E% 
272.
if not defined orig goto :noren 
273.
if defined noemptyLines goto :noren 
274.
if defined nodel goto :noren  
275.
move /y "%pOut%%orig%%put%" "%~1" 
276.
:noren 
277.
set /a Lempty = Full - noempty 
278.
echo AnzahlZeilen %Full% AnzahlLeerzeilen %Lempty% %Q% 
279.
if exist %temp%\tmp del %temp%\tmp 
280.
if defined erropt exit /b 3 
281.
if %noempty% equ 0 exit /b 4 
282.
if defined noemptyLines exit /b 6 
283.
if defined nodel exit /b 5 
284.
exit /b 0 
285.
:: -------------------schnapp------NumberMe.bat------------</
Bitte warten ..
Mitglied: pieh-ejdsch
17.09.2009 um 02:51 Uhr
so nun aber...
Version 1.6 (Final) endlich geschafft....
Änderungen im ChangeLog

vllt mache ich noch eine Erklärung dazu was in den Code Zeilen passiert.
Jetzt geh ich erstma in die Heia....gut n8t
Bitte warten ..
Mitglied: pieh-ejdsch
21.09.2009 um 21:58 Uhr
so nu bei V1.8 ungefähr 98,2% vom Plansoll geschafft.
die Performance ist wieder Top.

Gruß Phil
Bitte warten ..
Mitglied: pieh-ejdsch
22.02.2011 um 16:12 Uhr
wieder einmal ist eine neue Version Fertiggestellt. V1.9

ein paar kleine Verbesserungen habe ich hinzugefügt.
Änderungen sind im ChangeLog nachlesbar.

Gruß Phil
Bitte warten ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
Batch & Shell
gelöst Appx aus Image auslesen und entfernen (9)

Frage von Markus2016 zum Thema Batch & Shell ...

CPU, RAM, Mainboards
CPU Lüfter von CPU entfernen (6)

Frage von uridium69 zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...