Moin, ich habe eine kleine Aufgabe: Ich habe mehrere Verzeichnisse nach dem gleichem Schema: z.B.: c:\Test\24-0001 c:\Test\24-0023 c:\Test\23-0002 c:\Test\24-0100 c:\Test\24-0002 c:\Test\25-0020 mit Unterverzeichnissen auch fast alle mit dem gleichem Schema: z.B.: c:\Test\24-0001\Takt1 c:\Test\24-0001\Takt2 c:\Test\24-0001\Takt5 selten auch: c:\Test\24-0001\Takt1\Bilder\2401204 c:\Test\24-0001\Takt2\Daten in den Verzeichnissen sind PDF Dateien: z.B. KP_1_300-x-01.T12_Text_ENTW.pdf KP_2_201-a-10.T04_Text_QS.pdf KP_4_105-a-02.T01_Text_ENTW.pdf KP_3_701-b-05-T11_Text_ENTW.pdf ich versuche ein Tool zu schreiben....aber alles klappt irgendwie nicht, es muss eine Batch Datei sein. was soll passieren, das Tool sollte das Verzeichnis durchsuchen und eine TXT erstellen im Verzeichnis: C:\Test\TXT Ergebnis: eine TXT Datei: Name der Datei soll der Verzeichnis Name sein: z.B. 24-0001.TXT 24-0023.TXT usw. in der Datei sollen, aus den PDF-Datei Namen die Nummern rausgefiltert werden und in der TXT vorne untereinander stehen zb.: (Dateien Ohne Nummer werden nicht berücksichtigt) Datei 24-0001.txt 300-x-01 201-a-10 105-a-02 701-b-05 usw... die Datei wird dann im Verzeichnis c:\Test\TXT gespeichert und weiter verarbeitet habt Ihr eine Idee? Lg Tim
Was hat denn der Bub bisher in seiner Hausaufgabe selber zusammenbekommen? Fertige Lösungen gibts hier nicht.
Wenn die Nummern immer an der gleichen Stelle im Namen stehen, kann man das in einer Batchdatei mit
1 | set neuname=%altname:~6,8% |
schon mal rausziehen. Tim B. schrieb: > (Dateien Ohne Nummer werden nicht berücksichtigt) Da würde ich die beiden "-" kontrollieren, mit obiger Extraktion und "if". Dann noch ein bissel Zauberei mit "for" und dann geht das. Als Oldschooler käme mir in den Sinn, eine Textdatei des gesamten Verzeichnisbaums via QBasic in entsprechende Files zu teilen, so hab ich das vor 20 oder 25 Jahren gemacht, ist schnell zusammengehackt, für umme und speziell für solche text-zu-text-Aufgaben sehr viel einfacher als Batch.
Jens M. schrieb: > Als Oldschooler käme mir in den Sinn, eine Textdatei des gesamten > Verzeichnisbaums via QBasic in entsprechende Files zu teilen Als Neuschooler hackt man das mal eben in Python zusammen. Auch wenns mit einem Windows-Bacthfile vermutlich auch zu machen ist, tut sich den Krampf doch niemand freiwillig an. Wenn überhaupt, dann mit einem powershell-script. Oliver
Batch bzw. eine compilierte QBasic-Datei haben den Vorteil installationsfrei auch auf anderen System zu laufen. Aber ja, heutzutage ist Python ein Allheilmittel für solche Sachen.
Für eine fertige Lösung: Einfach den Eröffnungs-Beitrag, so wie er ist, unverändert, in die KI kippen, statt in das Forum.
1 | @echo off |
2 | setlocal |
3 | |
4 | REM Set the base directory |
5 | set "baseDir=C:\Test" |
6 | set "outputDir=C:\Test\TXT" |
7 | |
8 | REM Ensure the output directory exists |
9 | if not exist "%outputDir%" ( |
10 | mkdir "%outputDir%" |
11 | ) |
12 | |
13 | REM Loop through each directory in the base directory |
14 | for /d %%D in ("%baseDir%\*") do ( |
15 | REM Get directory name (e.g., 24-0001) |
16 | set "dirName=%%~nxD" |
17 | |
18 | REM Initialize a temporary file to store numbers |
19 | set "tempFile=%baseDir%\%dirName%.temp" |
20 | echo. > "%tempFile%" |
21 | |
22 | REM Loop through PDF files in the directory and subdirectories |
23 | for /r "%%D" %%F in (*.pdf) do ( |
24 | REM Use a regex to extract the number pattern from the filename |
25 | for /f "tokens=2 delims=_." %%G in ('echo %%~nF ^| findstr /r "[0-9][0-9][0-9]-[a-z]-[0-9][0-9]"') do ( |
26 | echo %%G >> "%tempFile%" |
27 | ) |
28 | ) |
29 | |
30 | REM If numbers were extracted, rename the temporary file |
31 | if exist "%tempFile%" ( |
32 | move /y "%tempFile%" "%outputDir%\%dirName%.txt" > nul |
33 | ) |
34 | ) |
35 | |
36 | REM Clean up any remaining temporary files |
37 | del /q "%baseDir%\*.temp" 2> nul |
38 | |
39 | echo Done. |
40 | endlocal |
Debuggen und abgleichen, ob das auch das gewünschte tut, darfst du selber.
Hi schon mal danke, das hab ich schon raus bekommen: dir %Fahrzeug%\%project%\*ENTW*.PDF > %Fahrzeug%\dir.txt /s /b /d /a:-d for /F "tokens=5,6 delims=_" %%a in ('type %Fahrzeug%\dir.txt ^| findstr /v "^MEB "') do ( echo findstr /v "^T39 %%a >> %Fahrzeug%\%project%.txt Ergebnis: T33.3432.T01 T31.4210.MEB 200-x-00 200-x-xx 213-b-01 500-x-xx 200-x-xx 200-x-00 200-x-xx 200-x-xx 200-x-xx 200-x-xx 200-x-xx 400-x-xx 200-x-xx 200-x-xx 541-d-01 211-a-01 546-a-01 muss noch alle XX beseitigen z.B: 200-x-xx in 200 und die Zeilen T.... lg tim
Wie wäre es damit, erstmal einen PAP oder ein Struktogramm zu zeichnen? Danach den Algorithmus in Einzel-Aufgaben zerlegen, diese coden und einzeln checken, dann das Ganze zusammenbauen. Ja, ich weiss, vollkommen "old fashion", funktioniert aber wenigstens ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.