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
GELÖST

BATCH Das filtern einer Zahl aus jeder einzelnen Zeile von einer Textdatei

Frage Entwicklung Batch & Shell

Mitglied: Darkprodukt

Darkprodukt (Level 1) - Jetzt verbinden

09.07.2012, aktualisiert 10.07.2012, 4605 Aufrufe, 30 Kommentare

Hallo, und vielen Dank für jede Hilfe die ich bekomme.

Ich habe mich vor einiger Zeit schonmal mit einem BATCH Programm befasst und hatte auch einen Erfolg.
Ich will das Programm aber nun in V2 übergehen lassen und dabei schritte die ich von Hand machen muste nun mit dem Programm machen.

Mein Problem im momment ist:

Ich habe einige dateinamen in einer Textdatei die ca. so aussehen:
01.
_BlaBlub__Langweiligertext_-_01_E5F7B270_  
02.
_BlaBlub__Langweiligertext_-_02_5D5C3E0F_  
03.
_BlaBlub__Langweiligertext_-_Folge_01_36BCEBESz98_  
04.
_BlaBlub__Langweiligertext_-_Folge_02_049D9A7E_  
05.
_BlaBlub__Langweiligertext!_-_Episode_01_ 
06.
_BlaBlub__Langweiligertext!_-_Episode_02_ 
07.
 
08.
_BlaBlub__Langweiligertext_01_6B9FB6E2_  
09.
_BlaBlub__Langweiligertext_02_8F4DF051_  
10.
_BlaBlub__Langweiligertext_Folge_01_A4E0CAEE22_  
11.
_BlaBlub__Langweiligertext_Folge_02_7142DFF0_  
12.
_BlaBlub__Langweiligertext_Episode_01_BFE600CA_  
13.
_BlaBlub__Langweiligertext_Episode_02_65D87891G031_  
14.
 
15.
_BlaBlub01__Langweiligertext_-_01_E5F7B270__65DA68_ 
16.
_BlaBlub02__Langweiligertext_-_02_5D5C3E0F_  
17.
_BlaBlub03__Langweiligertext_-_Folge_01_36BCEB98_  
18.
_BlaBlub04__Langweiligertext!_-_Folge_02_049D9UZKYA7E_  
19.
_BlaBlub05__Langweiligertext!_-_Episode_01_BFE600CA_  
20.
_BlaBlub06__Langweiligertext_-_Episode_02_65D87031_  
21.
 
22.
_BlaBlub07__Langweiligertext_01_ 
23.
_BlaBlub08__Langweiligertext_02_ 
24.
_BlaBlub09__Langweiligertext_Folge_01_A4E0CE22_  
25.
_BlaBlub10__Langweiligertext!_Folge_02_7142DFF0_  
26.
_BlaBlub11__Langweiligertext!_Episode_01_BFA681EE600CA_  
27.
_BlaBlub12__Langweiligertext_Episode_02_65D87031__65D87031_
aus dieser will ich mit einem befehl diese ausgabe bekommen
01.
01 
02.
02 
03.
01 
04.
02 
05.
01 
06.
02 
07.
...
Also die Episoden Zahl

Ich bin am überlegen einfach alles was mit _"Buchstabe" anfängt bis zum negsten _ zu löschen und die wörter am Dateianfang bis zum _ löschen und danach alle sonderzeichen zu löschen.
Dan solte die erste Zahl die episodennummer sein.

Das Problem ist wie mach ich so einen Filter ???

Was ich hinbekomme ist:
Alle Sonderzeichen und Buchstaben zu Löschen aber dann würde ja manchmal das 07 am anfang als ausgabe da sein.

Edit: Beispiele Überarbeitet
30 Antworten
Mitglied: rubberman
10.07.2012 um 00:09 Uhr
Hallo Darkprodukt,

Du könntest den Name am String "Episode" trennen, um es einfacher zu machen.
01.
@echo off &setlocal 
02.
for /f "usebackq delims=" %%a in ("names.txt") do ( 
03.
  set "ln=%%a" 
04.
  setlocal EnableDelayedExpansion 
05.
    for /f "tokens=2 delims=•" %%b in ("!ln:Episode=•!") do ( 
06.
      for /f "delims=_" %%c in ("%%b") do echo %%c 
07.
08.
  endlocal 
09.
10.
pause
Grüße
rubberman
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012 um 00:13 Uhr
Danke für hilfreiche Antwort, damit kan ich schonmal was anfangen.

Jezt hab ich nur noch das Problem:
Es steht nicht immer Episode davor.

Es kan auch mal nur Ep oder folge oder auch nix dastehen

Sry das ich das nicht gleich im Beispiel gesagt habe. Ich hab einfach vergessen dazu ein Beispiel zu geben.

Ich Überarbeite mein Beispiel mal schnell.
Bitte warten ..
Mitglied: rubberman
10.07.2012 um 00:22 Uhr
Hallo Darkprodukt,

in Zeile 3 wirklich "Ep01" ohne Underline dazwischen?
Was ist mit der Zeichenfolge "_-_"? Taugt die um eine Trennung des Namens vorzunehmen?

Grüße
rubberman
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012, aktualisiert um 00:33 Uhr
Das mit nur Ep hab ich behoben die Erkennung der Episode ist also eine Zahl die _"Zahl(Ein oder Zweistellig)"_



Edit: So jezt sind alle möglichen Kombinationen in der Beispiel Liste


Und entschuldigung das ich die Beispiele nicht gleich Richtig geschrieben habe.
Bitte warten ..
Mitglied: bastla
10.07.2012 um 00:35 Uhr
Hallo Darkprodukt und rubberman!

Und wenn das vom Ende her aufgedröselt wird?
01.
@echo off &setlocal 
02.
for /f "usebackq delims=" %%a in ("names.txt") do ( 
03.
  set "ln=%%a" 
04.
  setlocal EnableDelayedExpansion 
05.
  set "ln=!ln:~,-10!" 
06.
  for %%b in (!ln:_^= !) do set "Nr=%%b" 
07.
  echo !Nr! 
08.
  endlocal 
09.
10.
pause
Grüße
bastla
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012, aktualisiert um 00:58 Uhr
*Heul*

Ich bin echt nicht so besonders in der Schilderung von Problemen...

Naja hier ist eben das Problem das es eben nicht gesagt ist das am ende immer so eine CODE gewirr im dateinamen steht.
Es kan auch Länger sein oder garnicht vorhanden

Beispielliste wieder Überarbeitet

Edit:
Ich glaube meine schlechten Beispiele kommen daher das ich weiß was ich will und vieles als gegeben ansehe was für euch eine info ist ... naja ich bin mit ziemlich sicher, dass das jezt alles war ^^
Bitte warten ..
Mitglied: rubberman
10.07.2012, aktualisiert um 01:05 Uhr
Hallo Zusammen.

Sehr laaangsaaam, sollte aber alle Vorkommen von ein- und zweistelligen numerischen Ausdrücken, die in Underlines eingefasst sind finden.
01.
@echo off &setlocal 
02.
for /f "usebackq delims=" %%a in ("names.txt") do ( 
03.
  set "ln=%%a" 
04.
  setlocal EnableDelayedExpansion 
05.
    for %%b in ("!ln:_=" "!") do echo %%~b|findstr /x "[0-9][0-9]*" 
06.
  endlocal 
07.
08.
pause
Ich würde persönlich für RegExp in VBScript plädieren...

[EDIT]@bastla Wir schauen in die gleiche Glaskugel, oder? [/EDIT]

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
10.07.2012, aktualisiert um 01:09 Uhr
Hallo Darkprodukt!

In diesem Fall würde ich tatsächlich Deine Idee mit der Suche nach der ersten Kombination "_" + Ziffer(n) + "_" aufgreifen (ein wenig VBS im Batch stört ja hoffentlich nicht):
01.
@echo off &setlocal 
02.
set "Datei=names.txt" 
03.
 
04.
set "F=%temp%\Filtern.vbs" 
05.
 >"%F%" echo Set rE=New RegExp:rE.Pattern = "_(\d+)_":Lines=Split(CreateObject("Scripting.FileSystemObject").OpenTextFile("%Datei%").ReadAll, vbCrLf) 
06.
>>"%F%" echo For Each Line In Lines:Set Matches = rE.Execute(Line):For Each Match In Matches:WScript.Echo Match.SubMatches(0)^&" "^&Line:Next:Next 
07.
 
08.
for /f "tokens=1*" %%a in ('cscript //nologo "%F%"') do echo %%a in %%b 
09.
pause
[Edit] noch um Ausgabe der Originalzeile erweitert [/Edit]

Grüße
bastla

[Edit] @rubberman: Deine Ideen sind doch wirklich immer die besten ... [/Edit]
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012, aktualisiert um 01:18 Uhr
@rubberman

Fungtioniert bis jezt einwandfrei.

Danke

Mich würde aber noch interessieren wie du die zufälligen Zahlen aus dem Codegewirr am ende ausgeklammert hast und die am anfang von _BlaBlub08_ etc.

Danke
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012 um 01:21 Uhr
@bastla

Das fungtioniert auch einwandfrei, aber ich habe keine Ahnung von vbs skribt (leider)

Aber solange es Fungtioniert

DANKE
Bitte warten ..
Mitglied: rubberman
10.07.2012, aktualisiert um 01:28 Uhr
Hallo Darkprodukt

Ich mache aus
_BlaBlub__Langweiligertext_-_01_E5F7B270_
ein
"" "BlaBlub" "" "Langweiligertext" "-" "01" "E5F7B270" ""
indem ich jeden _ durch " " ersetze und den gesamten Ausdruck zusätzlich in Anführungszeichen setze. Somit ergeben sich in Anführungszeichen stehende Teilstrings, die durch Leerzeichen voneinander getrennt sind. In der zweiten FOR Schleife wird jeder einzelne Teilstring geprüft.

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
10.07.2012 um 01:30 Uhr
Hallo rubberman!

Täusche ich mich, oder ist die Laufzeit mit
for %%b in (!ln:_^= !) do echo %%~b|findstr /x "[0-9][0-9]*"
tatsächlich besser?

Grüße
bastla
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012, aktualisiert 11.07.2012
Hm danke find ich super

Ein Problem weniger

Edit: Ein Problem hätte ich aber noch.
Wie kan ich die Ausgabe in eine datei Umleiten?

Ich kan ja schlecht
01.
:FilterEP 
02.
>type >%TEMP%\tempdatep.txt 
03.
cls 
04.
 
05.
.wandler\wandler %TEMP%\tempdatn.txt /Q /L /T /:. /:_ /:Ep /: /:v2 /: /:v3 /: 
06.
 
07.
for /f "usebackq delims=" %%a in ("tempdatn.txt") do ( 
08.
  set "ln=%%a" 
09.
  setlocal EnableDelayedExpansion 
10.
    for %%b in ("!ln:_=" "!") do echo %%~b|findstr /x "[0-9][0-9]*">>%TEMP%\tempdatep.txt 
11.
  endlocal 
12.
13.
.wandler\wandler tempdatep.txt /Q /L /T /:_ /:@20 
14.
.wandler\wandler tempdatep.txt /Q /L /T 
15.
goto Programm
schreiben

@bastla
Ich erinnere mich das du damals gefragt hast was .wandler\wandler ... ist und ich vergessen hatte zurück zu schreiben

.wandler\wandler ist eine fungtion zur veränderung von Texten
erst wird der Pfad von der zu verändernde datei übergeben
danach die parameter (sowas wie Lehrzeichen am anfang und ende einer Zeile löschen und doppelte lehrzeichen entfernen)
und danach unter /: /: wird in der ersten /:"Zu ersetzender string" /:"Mit was ersetzt wird" /:"Zu ersetzender string2" /:"Mit was ersetzt wird2" etc.

Achja und wenn man z.b. /:_ /:@20 schreibt wird aus dem _ ein Lehrzeichen ;)

Habs nicht selbst geschrieben. Ist ein altes DOS Tool von irgendwem was ich mal auf einer meiner langen Google Reisen auf der suche nach Lösungen gefunden habe :D

Link: http://igames.inside1.net/html/dosa4.htm Einfach auf WANDLER klicken und downloaden

Hoffe ich konnte es verständlich machen


Edit: Achja Grüße Darkprodukt
Bitte warten ..
Mitglied: rubberman
10.07.2012 um 01:43 Uhr
Hallo bastla,

kann keinen großen Unterschied ausmachen. Da wir aber nicht wissen wie viele Leerzeichen in "Langweiligertext" womöglich vorkommen, würde ich prophylaktisch davon abraten. Jeder zusätzliche Aufruf von FINDSTR braucht ~200 ms.

Grüße
rubberman
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012, aktualisiert um 01:47 Uhr
Also die Wartezeiten sind mir egal solange sie nur im Sekunden bereich liegen.
So viel Zeit wie mir das Programm spart :D wenn ich das von Hand machen müste bei ca 1000 Zeilen Puh ^^
Bitte warten ..
Mitglied: rubberman
10.07.2012 um 01:58 Uhr
Hallo Darkprodukt

Zitat von Darkprodukt:
Edit: Ein Problem hätte ich aber noch.
Wie kan ich die Ausgabe in eine datei Umleiten?

Ich kan ja schlecht ...

Warum solltest du nicht können?
Du solltest nur sicherstellen dass tempdatep.txt nicht existiert bzw leer ist.

Füge ggf. vorher ein...
>%TEMP%\tempdatep.txt type nul
...ein.

Grüße
rubberman
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012 um 02:13 Uhr
Das Problem hab ich bei dem echo befehl am ende ...

Ich habe das noch nie so gemacht also mit einer Pipe "|" einen findstr
ergo hab ich keine ahnung wo ich das >>%TEMP%\tempdatf.txt hinpacken soll

Ich habs jezt so aber da wird nix in die Datei geschrieben
01.
:Filter 
02.
type >%TEMP%\tempdatf.txt 
03.
cls 
04.
 
05.
.wandler\wandler %TEMP%\tempdatn.txt /Q /L /T /:. /:_ /:Ep /: /:v2 /: /:v3 /: 
06.
for /f "usebackq delims=" %%a in ("tempdatn.txt") do ( 
07.
														set "ln=%%a" 
08.
														setlocal EnableDelayedExpansion 
09.
														for %%b in ("!ln:_=" "!") do echo %%~b|findstr /x "[0-9][0-9]*">>%TEMP%\tempdatf.txt 
10.
														endlocal 
11.
12.
.wandler\wandler %TEMP%\tempdatf.txt /Q /L /T /:_ /:@20 
13.
.wandler\wandler %TEMP%\tempdatf.txt /Q /L /T 
14.
goto Programm
Bitte warten ..
Mitglied: rubberman
10.07.2012, aktualisiert um 02:39 Uhr
Hallo Darkprodukt,

Ich hab mal alle ".wandler" Zeilen auskommentiert (habe ich schließlich nicht) und siehe da, in der Datei steht was drin stehen soll.
Dein Problem liegt nicht in der Umleitung der Daten von FINDSTR. Da musst du woanders suchen.

Grüße
rubberman

[EDIT] "tempdatn.txt" liegt auch im %temp% Verzeichnis, oder? Dann schreibe es auch so in die FOR schleife [/EDIT]
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012 um 09:29 Uhr
... Sry Das hätte ich auch selber sehen können ;)

Ok danke an alle für die Hilfe meine Frage wäre somit beantwortet.
Bitte warten ..
Mitglied: pieh-ejdsch
10.07.2012, aktualisiert um 23:15 Uhr
moin,

Beim einfachen Alphabet und paar Zeichen hätte ich dazu tendiert:
01.
>"%TEMP%\tempdatf.txt" (for /f "usebackq delims=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXZ.-_! " %%i in ("C:\Users\Pieh-Ejdsch AD\Desktop\CMD\a.-CRLF.txt") do @echo %%~i)
sonst hätte ich Zwecks Performance so getan:
01.
>"%TEMP%\tempdatf.txt" (for /f "usebackq delims=" %%a in ("tempdatn.txt") do ( 
02.
  set "ln=%%a" 
03.
  setlocal EnableDelayedExpansion 
04.
    for %%b in ("!ln:_=" "!")  do @if %%~b gtr 0 if %%~b lss 100 echo %%~b 
05.
  endlocal 
06.
)) 
07.
 
08.
  endlocal 
09.
)
PS. @Darkprodukt mach bitte noch ein Gelöst Marker an den Thread
[Edit]
b eingetragen
[/Edit]

Gruß Phil
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012, aktualisiert um 16:17 Uhr
@pieh-ejdsch

Hm... aber würde bei der Lösung nicht auch bei dem hier

_Blablub07_Langweiligertext_-_05_12ABSDE_ das rauskommen --> 070512 ???

Edit: Hab gerade deine nicht so Performance Lastige version getestet.
Das am ende echo %%~i muss %%~b heißen oder. ;)

Sie ist zwar Schneller bringt aber auch 167 Zeilen stadt 165.
Hat aber den ersten Fehler erst bei Zeile 57. (Mehr Infos weiter unten)

@rubberman
Ich hab gestern deinen Code getestet und er fungtioniert Wunderbar.

Heute hab ich mein ganzes Projekt zuende bekommen und muste Feststellen, dass wenn
man es bei ca 150+ Datein einsetzt die Lösung so ausschaut:
01.
[...] 
02.
02 
03.
03 
04.
04 
05.
05 
06.
06 
07.
07 
08.
24493129 
09.
08 
10.
09 
11.
10 
12.
[...] 
13.
16 
14.
17 
15.
18 
16.
19 
17.
20 
18.
07960983 
19.
21 
20.
[...] 
21.
10 
22.
11 
23.
12 
24.
04 
25.
62498820 
26.
05 
27.
[...] 
28.
02 
29.
03 
30.
01 
31.
02 
32.
66528224 
33.
03 
34.
04 
35.
[...] 
36.
09 
37.
10 
38.
11 
39.
12 
40.
33240428 
41.
13 
42.
01 
43.
[...]
Das war angewannt auf 165 Dateinamen und es kamen 167 Zahlen raus.
Die Sätze haben alle die Creterien erfüllt bis auf 3 in denen keine Zahl zu ermitteln war

Wie man sehen kan sind 5 komplett unbrauchbare Zahlen dabei.
Das macht 167 Ergebnisse - 5 Unbracubare + 3 Nicht Ermittelbare = 165

Woher kommen siese Fahler Zahlen?
An den Nciht zu ermittelnden Ligt es aufjedenfall nicht Direkt da die erste Fehlerzahl in Zeile 36 kommt und
der erste nicht zu ermittelnde satz in Zeile 114.

Das negste Problem ist auch noch, das die Zahlen nach diesn Unbrauchbaren nach unten verschoben werden
und somit sogar die richtigen unbrauchbar machen.


Der Code
01.
for /f "eol=/" %%i in ('type "CLRLIB.txt"') do ( 
02.
												echo Ersetze: %%i && .wandler\wandler %TEMP%\tempdatn.txt /Q /L /T /:%%i /:_ 
03.
04.
.wandler\wandler %TEMP%\tempdatn.txt /Q /L /T /:. /:_ /:Ep /:_ /:@20 /:_ 
05.
timeout /t 1 >NUL 
06.
for /f "usebackq delims=" %%a in ("%TEMP%\tempdatn.txt") do ( 
07.
															set "ln=%%a" 
08.
															setlocal EnableDelayedExpansion 
09.
															for %%b in ("!ln:_=" "!") do echo %%~b|findstr /x "[0-9][0-9]*">>%TEMP%\tempdatf.txt 
10.
															endlocal 
11.
12.
.wandler\wandler %TEMP%\tempdatf.txt /Q /L /T /:_ /:@20 
13.
.wandler\wandler %TEMP%\tempdatf.txt /Q /L /T
Edit: Könnte man vieleicht als Fehlererkennung einbauen, dass wenn keine Zahl ermittelt werden konnte "OVA" als ausgabe kommt?
Vieleicht Löst sich das Problem ja dann auf.

Edit2: Ich kann wenn gewünscht mal alle Datein (auch die Tempdatein) in eine Rar packen und sie Hochladen
Bitte warten ..
Mitglied: bastla
10.07.2012, aktualisiert um 16:53 Uhr
Hallo Darkprodukt!

Wenn sichergestellt werden soll, dass nur zweistellige Zahlen ausgegeben werden, brauchst Du eigentlich nur den "*" in der Zeile 9 zu entfernen - oder meinen Vorschlag von sehr weit oben auf
01.
@echo off &setlocal 
02.
set "Datei=names.txt" 
03.
 
04.
set "F=%temp%\Filtern.vbs" 
05.
 >"%F%" echo Set rE=New RegExp:rE.Pattern="_(\d\d)_":Lines=Split(CreateObject("Scripting.FileSystemObject").OpenTextFile("%Datei%").ReadAll, vbCrLf) 
06.
>>"%F%" echo For Each Line In Lines:Set Matches=rE.Execute(Line):If Matches.Count=0 Then:WScript.Echo "OVA":Else:For Each Match In Matches:WScript.Echo Match.SubMatches(0):Next:End If:Next 
07.
 
08.
cscript //nologo "%F%">%TEMP%\tempdatf.txt
zu ändern (da wird dann auch schon im Fall des Falles "OVA" ausgegeben)
wenn gewünscht mal alle Datein (auch die Tempdatein) in eine Rar packen und sie Hochladen
Es sollte eigentlich schon genügen, die Datei "tempdatn.txt" im Zustand nach der "Wandlung" zu posten ...

Grüße
bastla
Bitte warten ..
Mitglied: Darkprodukt
10.07.2012, aktualisiert um 18:51 Uhr
Ok hier:
01.
KQ_Oacp__01_avi 
02.
KQ_Oacp__02_avi 
03.
KQ_Oacp__03_avi 
04.
KQ_Oacp__04_avi 
05.
KQ_Oacp__05_avi 
06.
KQ_Oacp__06_avi 
07.
KQ_Oacp__07_avi 
08.
KQ_Oacp__08_avi 
09.
KQ_Oacp__09_avi 
10.
KQ_Oacp__10_avi 
11.
KQ_Oacp__11_avi 
12.
KQ_Oacp__12_avi 
13.
KQ_Oacp__13_avi 
14.
KQ_Oacp__14_avi 
15.
KQ_Oacp__15_avi 
16.
KQ_Oacp__16_avi 
17.
KQ_Oacp__17_avi 
18.
KQ_Oacp__18_avi 
19.
KQ_Oacp__19_avi 
20.
KQ_Oacp__20_avi 
21.
KQ_Oacp__21_avi 
22.
KQ_Oacp__22_avi 
23.
KQ_Oacp__23_avi 
24.
KQ_Oacp__24_avi 
25.
KQ_Oacp__25_avi 
26.
KQ_Oacp__26_avi 
27.
_No_KQ_Oacp_if_-_01_XviD__DC32D2A2__avi 
28.
_No_KQ_Oacp_if_-_02_XviD__F36F6EC8__avi 
29.
_kK_KQOacp2_01_791F179E__avi 
30.
_kK_KQOacp2_02_F0B55322__avi 
31.
_kK_KQOacp2_03_99EDFA50__avi 
32.
_kK_KQOacp2_04_6793ADCE__avi 
33.
_kK_KQOacp2_05_24E8E646__avi 
34.
_kK_KQOacp2_06_6904D1B2__avi 
35.
_kK_KQOacp2_07_24493129__avi 
36.
_kK_KQOacp2_08_5505102F__avi 
37.
_kK_KQOacp2_09_D912E601__avi 
38.
_kK_KQOacp2_10_D1A1D042__avi 
39.
_kK_KQOacp2_11_80F0FD83__avi 
40.
_kK_KQOacp2_12_97CA4558__avi 
41.
_kK_KQOacp2_13_56DE5B4E__avi 
42.
_UsAn__KQ_Oacp_II_SS_01____________78930DD8__mp4 
43.
_UsAn__KQ_Oacp_II_SS_02___________4282BE33__mp4 
44.
_UsAn__KQ_Oacp_II_SS_03___________5C623EEF__mp4 
45.
_UsAn__KQ_Oacp_II_SS_04___________8AAA20B__mp4 
46.
_UsAn__KQ_Oacp_II_SS_05___________57DDA_F__mp4 
47.
_UsAn__KQ_Oacp_II_SS_06___________517958C8__mp4 
48.
_UsAn__KQ_Oacp_II_SS_07___________6D4F31C2__mp4 
49.
_UsAn__KQ_Oacp_II_SS_08___________C02CD55C__mp4 
50.
_UsAn__KQ_Oacp_II_SS_09___________1395E8DA__mp4 
51.
_UsAn__KQ_Oacp_II_SS_10___________A00EEBC2__mp4 
52.
_UsAn__KQ_Oacp_II_SS_11___________EB5D3761__mp4 
53.
_UsAn__KQ_Oacp_II_SS_12___________C7_1DFD__mp4 
54.
_UsAn__KQ_Oacp_II_SS_13___________A3B16E5A__mp4 
55.
_UsAn__KQ_Oacp_SS_01__768x432________E01617A4__mp4 
56.
_UsAn__KQ_Oacp_SS_02__768x432________919A687D__mp4 
57.
_UsAn__KQ_Oacp_SS_03__768x432________0FD1CF09__mp4 
58.
_UsAn__KQ_Oacp_SS_04__768x432________8861E984__mp4 
59.
_UsAn__KQ_Oacp_SS_05__768x432________09B70F57__mp4 
60.
_UsAn__KQ_Oacp_SS_06__768x432________4B1A337A__mp4 
61.
_UsAn__KQ_Oacp_SS_07__768x432________E827A2D8__mp4 
62.
_UsAn__KQ_Oacp_SS_08__768x432________394EBAFF__mp4 
63.
_UsAn__KQ_Oacp_SS_09__768x432________48D43C36__mp4 
64.
_UsAn__KQ_Oacp_SS_10__768x432________53F6C1CD__mp4 
65.
_UsAn__KQ_Oacp_SS_11__768x432________4F164C87__mp4 
66.
_UsAn__KQ_Oacp_SS_12__768x432________459EF7BB__mp4 
67.
_UsAn__KQ_Oacp_SS_13__768x432________5E5DB92F__mp4 
68.
_UsAn__KQ_Oacp_SS_14__768x432____-___8DCACDC3__mp4 
69.
_UsAn__KQ_Oacp_SS_15__768x432____-___726C4AEC__mp4 
70.
_UsAn__KQ_Oacp_SS_16__768x432________DA68AA76__mp4 
71.
_UsAn__KQ_Oacp_SS_17__768x432________FDADE43A__mp4 
72.
_UsAn__KQ_Oacp_SS_18__768x432________9C44DF5B__mp4 
73.
_UsAn__KQ_Oacp_SS_19__768x432________A5B9043B__mp4 
74.
_UsAn__KQ_Oacp_SS_20__768x432________07960983__mp4 
75.
_UsAn__KQ_Oacp_SS_21__768x432________B0FAB135__mp4 
76.
_UsAn__KQ_Oacp_SS_22__768x432________91FEAD___mp4 
77.
___kl_-_t_sqrt_on_dsmoaes_-_01_XviD__ECA258EB__avi 
78.
___kl_-_t_sqrt_on_dsmoaes_-_02_XviD__9CF1D142__avi 
79.
___kl_-_t_sqrt_on_dsmoaes_-_03_XviD__D3960F9F__avi 
80.
___kl_-_t_sqrt_on_dsmoaes_-_04_XviD__FEE4BA5B__avi 
81.
___kl_-_t_sqrt_on_dsmoaes_-_05_XviD__6567D67F__avi 
82.
___kl_-_t_sqrt_on_dsmoaes_-_06_XviD__F10677E1__avi 
83.
___kl_-_t_sqrt_on_dsmoaes_-_07_XviD__800A47DF__avi 
84.
___kl_-_t_sqrt_on_dsmoaes_-_08_XviD__87F32A49__avi 
85.
___kl_-_t_sqrt_on_dsmoaes_-_09_XviD__325C56D5__avi 
86.
___kl_-_t_sqrt_on_dsmoaes_-_10_XviD__A451ED5D__avi 
87.
___kl_-_t_sqrt_on_dsmoaes_-_11_XviD__1BF9546F__avi 
88.
___kl_-_t_sqrt_on_dsmoaes_-_12_XviD__3157CB4B__avi 
89.
___kl_-_t_sqrt_on_msdroaes_-_04_xvid__62498820__avi 
90.
___kl_-_t_sqrt_on_msdroaes_-_05_xvid__5CDDD290__avi 
91.
___kl_-_t_sqrt_on_msdroaes_-_06_xvid__C4D40826__avi 
92.
___kl_-_t_sqrt_on_msdroaes_-_07_xvid__0E3B751B__avi 
93.
___kl_-_t_sqrt_on_msdroaes_-_08_xvid__3E0B4DC4__avi 
94.
___kl_-_t_sqrt_on_msdroaes_-_09_xvid__CF19E5B2__avi 
95.
___kl_-_t_sqrt_on_msdroaes_-_10_xvid__6353FAA6__avi 
96.
___kl_-_t_sqrt_on_msdroaes_-_11_xvid__530ACFA5__avi 
97.
___kl_-_t_sqrt_on_msdroaes_-_12_xvid__B803D4AE__avi 
98.
___Shayo_kl_-_t_sqrt_on_msdroaes_-_01__xvid__6FF112B6__avi 
99.
___Shayo_kl_-_t_sqrt_on_msdroaes_-_02_xvid__2328DE27__avi 
100.
___Shayo_kl_-_t_sqrt_on_msdroaes_-_03_xvid__DC1DD120__avi 
101.
____Bosa_kp_Hrashinbio_-___01__DVD___________7E68F1E6__mp4 
102.
____Bosa_kp_Hrashinbio_-___02__DVD___________66528224__mp4 
103.
____Bosa_kp_Hrashinbio_-___03__DVD___________0B87CB01__mp4 
104.
____Bosa_kp_Hrashinbio_-___04__DVD___________41BB9A44__mp4 
105.
____Bosa_kp_Hrashinbio_-___05__DVD___________D70AD88C__mp4 
106.
____Bosa_kp_Hrashinbio_-___06__DVD___________231F1ADF__mp4 
107.
____Bosa_kp_Hrashinbio_-___07__DVD___________4A10DBCB__mp4 
108.
____Bosa_kp_Hrashinbio_-___08__DVD___________CC322B82__mp4 
109.
____Bosa_kp_Hrashinbio_-___09__DVD___________F13CF215__mp4 
110.
____Bosa_kp_Hrashinbio_-___10__DVD___________6CD20392__mp4 
111.
____Bosa_kp_Hrashinbio_-___11__DVD___________97D0966F__mp4 
112.
____Bosa_kp_Hrashinbio_-___12__DVD___________4323E168__mp4 
113.
____Bosa_kp_Hrashinbio_-___13__DVD___________438B2E47__mp4 
114.
____Bosa_kp_Hrashinbio_-_OAV_-_Project_Pink__DVD___________4F8_D6D__mp4 
115.
____Gekijouban_Bosa_kp_Hrashinbio_-_Tokei_Jikake_no_A_eloid__________________D2B23653__mp4 
116.
Bosa_kp_Hrashinbio_Forte_-_01_-__mp4 
117.
Bosa_kp_Hrashinbio_Forte_-_02_-__mp4 
118.
Bosa_kp_Hrashinbio_Forte_-_03_-__mp4 
119.
Bosa_kp_Hrashinbio_Forte_-_04_-__mp4 
120.
Bosa_kp_Hrashinbio_Forte_-_05_-__mp4 
121.
Bosa_kp_Hrashinbio_Forte_-_06_-__mp4 
122.
Bosa_kp_Hrashinbio_Forte_-_07_-__mp4 
123.
Bosa_kp_Hrashinbio_Forte_-_08_-__mp4 
124.
Bosa_kp_Hrashinbio_Forte_-_09_-__mp4 
125.
Bosa_kp_Hrashinbio_Forte_-_10_-__mp4 
126.
Bosa_kp_Hrashinbio_Forte_-_11_-__mp4 
127.
Bosa_kp_Hrashinbio_Forte_-_12_-__mp4 
128.
_Bisi_Sun__Since_snd_Cosf_-_01__________7B9219C3__mkv 
129.
_Bisi_Sun__Since_snd_Cosf_-_02__________4C11795E__mkv 
130.
_Bisi_Sun__Since_snd_Cosf_-_03__________BE2F1BC8__mkv 
131.
_Bisi_Sun__Since_snd_Cosf_-_04__________5EB4B787__mkv 
132.
_Bisi_Sun__Since_snd_Cosf_-_05__________182F1F4F__mkv 
133.
_Bisi_Sun__Since_snd_Cosf_-_06__________A0D9DDDF__mkv 
134.
_Bisi_Sun__Since_snd_Cosf_-_07_Special________6E3525EB__mkv 
135.
_Bisi_Sun__Since_snd_Cosf_-_08__________F0CCFE4B__mkv 
136.
_Bisi_Sun__Since_snd_Cosf_-_09__________97ED8FF5__mkv 
137.
_Bisi_Sun__Since_snd_Cosf_-_10__________B5EAD512__mkv 
138.
_Bisi_Sun__Since_snd_Cosf_-_11__________B29C4648__mkv 
139.
_Bisi_Sun__Since_snd_Cosf_-_12__________33240428__mkv 
140.
_Bisi_Sun__Since_snd_Cosf_-_13__________5FAD4D97__mkv 
141.
_Bisi_Sun__Since_snd_Cosf_II_-_01__________mkv 
142.
_Bisi_Sun__Since_snd_Cosf_II_-_02__________mp4 
143.
_Bisi_Sun__Since_snd_Cosf_II_-_03__________mkv 
144.
_Bisi_Sun__Since_snd_Cosf_II_-_04__________mkv 
145.
_Bisi_Sun__Since_snd_Cosf_II_-_05__________mp4 
146.
_Bisi_Sun__Since_snd_Cosf_II_-_06__________mkv 
147.
_Bisi_Sun__Since_snd_Cosf_II_-_07___________mkv 
148.
_Bisi_Sun__Since_snd_Cosf_II_-_08__________mkv 
149.
_Bisi_Sun__Since_snd_Cosf_II_-_09__________mkv 
150.
_Bisi_Sun__Since_snd_Cosf_II_-_10__________mkv 
151.
_Bisi_Sun__Since_snd_Cosf_II_-_11__________mp4 
152.
_Bisi_Sun__Since_snd_Cosf_II_-_12__________mp4 
153.
_Bisi_Sun__Since_snd_Cosf_II_-_OVA_______mp4 
154.
_BFSs_Qlccr_mk_Alse_mu_01___mkv 
155.
_BFSs_Qlccr_mk_Alse_mu_02___mkv 
156.
_BFSs_Qlccr_mk_Alse_mu_03___mkv 
157.
_BFSs_Qlccr_mk_Alse_mu_04___mkv 
158.
_BFSs_Qlccr_mk_Alse_mu_05___mkv 
159.
_BFSs_Qlccr_mk_Alse_mu_06___mkv 
160.
_BFSs_Qlccr_mk_Alse_mu_07___mkv 
161.
_BFSs_Qlccr_mk_Alse_mu_08___mkv 
162.
_BFSs_Qlccr_mk_Alse_mu_09___mkv 
163.
_BFSs_Qlccr_mk_Alse_mu_10___mkv 
164.
_BFSs_Qlccr_mk_Alse_mu_11___mkv 
165.
_BFSs_Qlccr_mk_Alse_mu_12___mp4 
166.
 
Hab aus Rechtlichen Gründen die Buchstaben durch andere Ersetzt, aber die Groß und kleinschreibung etc. stimmt noch alles.

Edit: Hab deine Variante versucht zu testen in dem ich sie so ansteuere:
01.
for /f "tokens=1*" %%a in ('cscript //nologo "%F%"') do echo %%a>>%TEMP%\tempdatf.txt
alles Fungtioniert super es wird aber eine Zeile mehr ausgegeben die 166. Zeile ist OVA und zwar warscheinlich
weil in tempdatn.txt die 166. und lezte zeile nix beinhaltet

Ich weiß jezt leider nicht genau wie ich das verhindern kan

Edit: Edit habs Gelöst...
Zwar unsauber aber gelöst
Wenn ich die Datein wieder zusammensetze kommen nur solange datensätze in die neue Datei,
wovon beide Quelldatein eine Grundlage haben. Also wenn in der einen Datei nix und in der anderen OVA am Ende steht verfällt das einfach.

Grüße
Darkprodukt
Bitte warten ..
Mitglied: pieh-ejdsch
10.07.2012, aktualisiert 11.07.2012
moin,

Das hat mir jetzt keine Ruhe gelassen:
Findstr lässt sich aber Performanter einsetzen, wenn es nur einmal je Zeile statt pro Wort suchen muss.

01.
@echo off 
02.
set "N=%TEMP%\tempdatn.txt" 
03.
set "F=%TEMP%\tempdatf.txt" 
04.
.wandler\wandler %TEMP%\tempdatn.txt /Q /L /T /:. /:_ /:Ep /:_ /:@20 /:_ 
05.
timeout /t 1 >NUL 
06.
 
07.
>"%F%" (for /f "usebackq delims=" %%a in ("%N%") do set "ln=%%a" &call :Read ) 
08.
.wandler\wandler "%F%" /Q /L /T /:_ /:@20 
09.
.wandler\wandler "%F%" /Q /L /T 
10.
 
11.
 rem Hier nur exit /b wenn der Batch hier enden soll 
12.
::exit /b  
13.
 
14.
goto :HierWeiter 
15.
 
16.
:Read 
17.
(for %%b in ("%ln:_=" "%")  do @echo(%%~b 
18.
)|findstr /rc:"^[0-9][0-9] $" || echo OVA 
19.
exit /b 
20.
 
21.
:HierWeiter 
22.
 rem hier gehts normal weiter
OVA wird für ohne Fund ausgegeben.

Gruß Phil
Bitte warten ..
Mitglied: Darkprodukt
11.07.2012, aktualisiert um 15:19 Uhr
Hm den Code Teste ich mal, aber ich kan ihn leider nicht in meinem Programm einsetzen.

Da ich schon eine andere Sprungmarke am ende der Datei habe.

Es gibt mit Call auch die möglichkeit eine 2. Batch aufzurufen die das verarbeitet.
Bekommt die dann auch die Globalen Variaben wie z.b. hier %N% und %F%???

Oder kan man das auch ander Lösen?
Also mit deinen Sprungmarke das :Read hier zuendeist und es wieder zur For Schleife Springen soll.

Edit:

Vom Code her Fungtionier es Perfekt.
Jetzt hab ich nur noch das Problem mit dem einbauen in das Programm
Bitte warten ..
Mitglied: pieh-ejdsch
11.07.2012, aktualisiert um 15:39 Uhr
moin Darkprodukt,

Wenn Du Den Code in einen Batch einfügen willst, musst Du hinter Zeile 18 die Unteroutine mit exit /b 0
beenden.

Der Code soll nach der Zeile 12 beim Batch weitermachen (goto :hierweiter) statt exit /b.
Die Marke :hierWeiter ist dann der Abschluss vom Codeschnipsel.


Oben angepasst zum einfügen

Gruß Phil
Bitte warten ..
Mitglied: Darkprodukt
11.07.2012, aktualisiert um 16:10 Uhr
Ok danke

Das mit goto :hierweiter ist nicht nötig :D

Das Batch Programm hat ein auswahl Menp und ist kein Stapelprogramm .

Ich häng den :Read schnippsel ganz ans ende zu den Anderen kleinen Unterfungtionen ^^
Bin das auch so von C++ gewöhnt

Hab Wandler wieder gefunden ... hier der Link
http://igames.inside1.net/html/dosa4.htm

Einfach auf WANDLER klicken und downloaden

Allerdings bin ich schon dabei ein Programm zu schreiben was das gleiche kan,
aber auch Windows 64 Bit Kompartibel ist. Das ist nehmlich Wandler nicht. Leider.

Grüße Darkprodukt
Bitte warten ..
Mitglied: pieh-ejdsch
11.07.2012 um 18:42 Uhr
das mit dem anfügen der SubFunktion ganz ans Ende der Batch - heisst aber auch die ganze Batch wird nach der Sprungmarke :SubFunktion durchsucht. Das nimmt wieder etwas extra viel Zeit in Anspruch.

Wenn Du die SubFuntion Direkt nach der Hauptfuntion (egal welche Programmiesprache) einfügst, dann ist der Weg zur Subfunktion kürzer. Somit auch die Zeit.
Danach (hinter der Sub) kommt der nächste Befehl.

Der Wandler wäre für für Deine Zeile entsprechend in Batch:
01.
@echo off 
02.
setlocal 
03.
>("%TEMP%\withunderlines" (for /f "usebackq delims=" %%i in ("%TEMP%\tempdatn.txt" ) do set "Line=%%i" ^ 
04.
  &setlocal enabledelayedexpansion ^ 
05.
  &set "Line=!Line:.=_!" ^ 
06.
  &set "Line=!Line:Ep=_!" ^ 
07.
  &set "Line=!Line: =_!" ^ 
08.
  &(echo(!Line!) ^ 
09.
  &endlocal 
10.
11.
move "%temp%\withunderlines" "%TEMP%\tempdatn.txt"
und geht auch bei 64Bit Win7.

Gruß Phil
Bitte warten ..
Mitglied: Darkprodukt
11.07.2012, aktualisiert um 20:58 Uhr
Ok und wie würde ich die Fungtionen machen???

01.
for /f "eol=/" %%i in ('type "CLRLIB.txt"') do .wandler\wandler %TEMP%\tempdatn.txt /Q /L /T /:%%i /:_ 
02.
 
03.
 
04.
for /l %%i in ('1,1,9') do .wandler\wandler %TEMP%\tempdatn.txt /Q /L /T /:_%%i_ /:_0%%i_
CLRLIB.txt ist eine datei in der Zeilenweise wörter stehen die einfach gelöscht werden sollen

Kann man auch eine Batch schreiben die man mit Parametern, wie Wandler, ansteuern kan?

Und das wichtigste, wie kan ich Lehrzeichen am Zeilenanfang und Ende Löschen?

Edit:

Die Klammer vor "withunderlines" muss weg sonst fungtioniert es nicht...

Bin gerade am Testen und so fungtionierts mal nicht
01.
@echo off & setlocal 
02.
 
03.
>"withunderlines" (for /f "usebackq delims=" %%i in ("tempdatn.txt" ) do (  
04.
  set "Line=%%i" && 
05.
  for /f %%f in ('type "CLRLIB.txt"') do (  
06.
    set "CL=%%f" ^ 
07.
    &setlocal enabledelayedexpansion ^ 
08.
    &set "Line=!Line:!CL!=_!" ^ 
09.
    &set "Line=!Line:.=_!" ^ 
10.
    &set "Line=!Line:Ep=_!" ^ 
11.
    &set "Line=!Line: =_!" ^ 
12.
    &echo\!Line! ^ 
13.
    &endlocal 
14.
15.
16.
)  
17.
move "withunderlines" "Output.txt"
Ist es in dem zusammenhang wie in Zeile 8 Überhaupt möglich eine Variable so zu verwenden?

Edit2:
Alle meine Ideen versagen ;(

01.
@echo off & setlocal 
02.
type >Output.txt 
03.
 
04.
for /f "usebackq delims=" %%i in ("tempdatn.txt") do ( 
05.
	set "Line=%%i" 
06.
	for /f "usebackq eol=/ delims=" %%f in ('type "CLRLIB.txt"') do ( 
07.
		set "CL=%%f" 
08.
		setlocal enabledelayedexpansion 
09.
		set !CL! 
10.
		echo !Line!>>Output.txt 
11.
		endlocal 
12.
13.
	)
In der CLRLIB.txt steht dan sowas wie:
01.
"Line=!Line:h264=_!" 
02.
"Line=!Line:x264!=_!" 
03.
"Line=!Line:1280x720=_!" 
04.
"Line=!Line:768x432=_!" 
05.
"Line=!Line:720p=_!" 
06.
"Line=!Line:AAC=_!" 
07.
"Line=!Line:HD=_!"
Es liegt ziemlich sicher an Zeile 7 da ich bestimmt nicht in eine Variable CL sowas eintragen kan "Line=!Line:h264=_!"
Bitte warten ..
Mitglied: Darkprodukt
11.07.2012 um 21:27 Uhr
So ist auch nicht mehr Wichtig

Ist eh nicht mehr im Themenbereich und ich setze jezt mein ganzen Projekt in C++ um,
was die sache mit Wandler erheblich vereinfacht.

Grüße
Darkprodukt
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Ausbildung
gelöst Nummerierung jeder Zeile in einer Textdatei (4)

Frage von Mihail zum Thema Ausbildung ...

Batch & Shell
gelöst Mittels Batch jede Zeile einer Textdatei prüfen (4)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...