experiment626
Goto Top

X Zeichen am Anfang einer Textdatei entfernen (quasi Rand wegnehmen)

Hallo,
ich habe Textdateien, die einen linken Rand haben, sagen wir 10 Zeichen.
Das Dokument hat Absätze also auch Leerzeilen.

Ich hatte es etwas hinbekommen mit echo und :~10, aber immer wenn
die Lehrzeilen kamen, stand vom Echo dies ECHO ist eingeschlaftet (ON)
oder so ähnlich.
Die Leerzeilen sollen natürlich genauso wiedergegeben werden, der Rand
soll verschwinden.
Nun hatte ich hin und her gewurstet, jetzt hab ich nichts brauchbares mehr.

Die Dateien liegen immer im gleichen Ordner, tragen .txt und beginnen
alle gleich (Bef*.txt)

Für Euch ist das Problem vermutlich lachhaft, aber leider fehlt mir auf
Arbeit die Zeit, mich intensiver mit den Batch-Feinheiten zu beschäftigen.

Vielen Dank für Eure Hilfe.

Stitch

Content-Key: 244472

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

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: rubberman
Lösung rubberman 23.07.2014 aktualisiert um 20:19:59 Uhr
Goto Top
Hallo Experiment626

Probier's mal so:
@echo off &setlocal
for /f "delims=" %%i in ('dir /a-d /b Bef*.txt') do (  
  set "file=%%i"  
  set "tmpfile=%temp%\%%~ni.tmp"  
  setlocal EnableDelayedExpansion
  <"!file!" >"!tmpfile!" (  
    for /f %%j in ('type "!file!"^|find /c /v ""') do for /l %%k in (1 1 %%j) do (  
      set "line=" &set /p "line="  
      if defined line (
        echo(!line:~10!
      ) else (
        echo(
      )
    )
  )
  move /y "!tmpfile!" "!file!"  
  endlocal
)
Bei mehrfachem Aufruf des Codes werden die Zeilen natürlich auch jedes mal um 10 Zeichen kürzer ...

Grüße
rubberman
Mitglied: colinardo
Lösung colinardo 23.07.2014 aktualisiert um 20:20:07 Uhr
Goto Top
Moin Stitch,
folgendes sollte auch hinhauen:
@echo off &setlocal
for %%x in ("C:\Ordner\Bef*.txt") DO @(  
	(for /f "tokens=1* delims=: " %%a in ('type "%%x" ^| findstr /n "^"') DO echo(%%b))>"%%~dpnx_korrigiert%%~xx"  
)
Grüße Uwe
Mitglied: Experiment626
Experiment626 23.07.2014 um 20:10:21 Uhr
Goto Top
Hallo rubberman,
vielen Dank für die rasche Hilfe.
Funktioniert tadelos, so wie es sein sollte.

Schönen Feierabend und nochmals danke.
Mitglied: Experiment626
Experiment626 23.07.2014 um 20:18:15 Uhr
Goto Top
Hallo Uwe,
auch Dir vielen Dank für die schnelle Hilfe. Funktioniert an sich auch nicht schlecht, hat aber einen kleinen Schönheitsfehler.
Die Dokumente haben zum Teil Textelemente, die rechts ausgerichtet sind und links nichts am Anfang der Zeile stehen haben,
so dass hier die rechtsorientierten Elemente an den linken Anfang gezogen werden.

Das Script von rubberman hingegen macht es genau - aber ich werde auch Dein superkurzes Script in meine Sammlung aufnehmen.

Dir auch auch einen schönen Feierabend.