maddog1982
Goto Top

Batch ab dem 7 Buchstaben Zeile auslesen und in eine andere TXT Datei schreiben

Ich befasse mich gerade mit der Erstellung einer Batch Datei

Ich habe sämtliche Ordner in einem Verzeichnis ausgelesen und die Ordnernamen in einer TXT Datei gespeichert.
Ordner sind wie folgt in der TXT abgespeichert
Ordner_Verkauf
Ordner_Einkauf_Ware
Ordner_Verkauf

jetzt möchte ich das der String "Ordner_" aus jeder Zeile entfernt wird, so dass nur noch folgendes stehen bleibt
Verkauf
Einkauf_Ware
Verkauf

wie kann ich das machen?

Content-ID: 86363

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

Ausgedruckt am: 20.11.2024 um 11:11 Uhr

54487
54487 24.04.2008 um 20:36:14 Uhr
Goto Top
Start > Ausführen > CMD [ok]

Help SET oder Set /?

Dort findest du Beispiele.
bastla
bastla 24.04.2008 um 23:02:45 Uhr
Goto Top
... bevor Du allerdings die Möglichkeiten von "set" nutzen kannst, musst Du die Namen erst einmal in eine passende Variable bringen - etwa:
@echo off & setlocal
set "Alt=D:\Ordnernamen.txt"  
set "Neu=D:\Ordnernamen_neu.txt"  

if exist "%Neu%" del "%Neu%"  
for /f "usebackq delims=" %%i in ("%Alt%") do call :ProcessLine "%%i"  
goto :eof

:ProcessLine
set "Zeile=%~1"  

::ab 8. Buchstaben ausgeben
(echo %Zeile:~7%)>>"%Neu%"  

::oder

::Text "Ordner_" entfernen 
(echo %Zeile:Ordner_=%)>>%Neu%

goto :eof
Um Dein Ziel zu erreichen, kannst Du im Prinzip zwischen den beiden dargestellten Varianten "ab bestimmter Position ausgeben" (allerdings willst Du ja auch "_" nicht behalten, daher Ausgabe ab dem 8. Buchstaben bzw Überspringen der ersten 7 Zeichen) oder "Text entfernen" (genauer: durch "Nichts" ersetzen) wählen ...

Grüße
bastla
54487
54487 24.04.2008 um 23:08:38 Uhr
Goto Top
Um Dein Ziel zu erreichen,

hättest du auch die Suchfunktion, beispielswiese mit dem Begriff "Dateinamen kürzen" benutzen können.

Aber das ist offenbar zuviel verlangt, und Hilfe bekommt man - wie man sieht - ja trotzdem.
Hier bekommt eben jeder den Popo abgewischt, nicht wahr, bastla?
Maddog1982
Maddog1982 25.04.2008 um 21:19:12 Uhr
Goto Top
danke für deine tolle Hilfe, damit ist der Task hier gelöst
Biber
Biber 25.04.2008 um 21:43:28 Uhr
Goto Top
@Maddog1982
danke für deine tolle Hilfe, damit ist der Task hier gelöst
Ich wünsche mir, dass ich mich beim nächsten Thread bei Dir bedanken kann, weil Du den Beitrag ganz von allein auf "Gelöst" gesetzt hast. face-wink
Ich danke Dir, dass Du den Beitrag ganz von allein auf "Gelöst" gesetzt hast.

Alternative zu bastlas Epos wäre übrigens folgende Zeile am CMD-Prompt:
>for /f "delims=_ tokens=1,*" %i in (D:\Eine\textdatei.xyz) do @echo %j   

@54487 & @popoabwischen
Mit dem Hinweis auf die Forumssuche gebe ich Dir Recht.
Das intuitive Aufrufen von "SET /?" ... na ja, das geht erst, wenn man/frau die grobe Richtung ahnt.

@bastla
Schönes Wochenende!

Grüße
Biber
[Edit]...uuups, mein Wunsch ist schon in Erfüllung gegangen. thx @Maddog1982[/Edit]