ziffern verdrehen
Hallo mitteinander
So, wenn ich in einer txt in der text steht gerne position der buchstaben ändern möchte. Wie kann ich das machen?
Also zum beispiel:
WasseR ---> RasseW
HallO ---> OallH
Aber in ner txt wo ich nicht weis wie viele buchstaben die hatt...
Kann ich das mit For Tokens Delims Lösen? ---> Wenn ja, wie?
Ich danke allen antworten
LG Anok
So, wenn ich in einer txt in der text steht gerne position der buchstaben ändern möchte. Wie kann ich das machen?
Also zum beispiel:
WasseR ---> RasseW
HallO ---> OallH
Aber in ner txt wo ich nicht weis wie viele buchstaben die hatt...
Kann ich das mit For Tokens Delims Lösen? ---> Wenn ja, wie?
Ich danke allen antworten
LG Anok
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116964
Url: https://administrator.de/contentid/116964
Ausgedruckt am: 05.11.2024 um 14:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo anokkona!
Da Du keine genaueren Angaben zu "position der buchstaben ändern" machst, nur mal Dein erstes Beispiel:
Näheres in der Hilfe zu "set" (Stichwort: "Ersetzen von Umgebungsvariablen") ...
Wenn der Vorgang für jede Zeile einer Textdatei erfolgen soll, eine "for /f"-Schleife verwenden, schematisch etwa:
Grüße
bastla
Da Du keine genaueren Angaben zu "position der buchstaben ändern" machst, nur mal Dein erstes Beispiel:
@echo off & setlocal
set "Wort=WasseR"
set "Vertauscht=%Wort:~-1%%Wort:~1,-1%%Wort:~0,1%"
echo %Wort% --^> %Vertauscht%
Wenn der Vorgang für jede Zeile einer Textdatei erfolgen soll, eine "for /f"-Schleife verwenden, schematisch etwa:
@echo off & setlocal
for /f "delims=" %%i in (D:\Originaldatei.txt) do call :ProcessLine "%%i"
goto :eof
:ProcessLine
set "Wort=%~1"
set "Vertauscht=%Wort:~-1%%Wort:~1,-1%%Wort:~0,1%"
>>D:\NeueDatei.txt echo %Vertauscht%
goto :eof
bastla
Hallo anokkona!
Dieser geht davon aus, dass in jeder Zeile nur ein Wort steht - sind es mehrere Wörter pro Zeile (und soll bei jedem der Tausch erfolgen), müsste das etwa so aussehen:
Grüße
bastla
ich habe alles ausprobiert, aber es führt den befehl immer nur mit dem letzten wort durch.
Hast Du auch versucht, meinen Code zu verwenden ?Dieser geht davon aus, dass in jeder Zeile nur ein Wort steht - sind es mehrere Wörter pro Zeile (und soll bei jedem der Tausch erfolgen), müsste das etwa so aussehen:
@echo off & setlocal
set "Ein=D:\Originaldatei.txt"
set "Aus=D:\NeueDatei.txt"
if exist "%Aus%" del "%Aus%"
for /f "usebackq delims=" %%i in ("%Ein%") do call :ProcessLine "%%i"
type "%Aus%"
goto :eof
:ProcessLine
set Zeile=
for %%a in (%~1) do call :ProcessWord "%%a"
>>"%Aus%" echo %Zeile:~1%
goto :eof
:ProcessWord
set "Wort=%~1"
set "Zeile=%Zeile% %Wort:~-1%%Wort:~1,-1%%Wort:~0,1%"
goto :eof
bastla