delvar
Goto Top

Ändern von Textzeilen mit vorgegebenem Muster (Batchfile?)

Hallo erstmals,

ich bin der Georg und dies ist mein erster Beitrag hier. Google hat mich auf einen Beitrag hier verlinkt der ein ähnliches, aber nicht gleiches Problem gelöst hat, darum hab ich mir gedacht, kann mir vielleicht auf geholfen werden face-smile

Folgendes Problem:

Ich hab in einem Textfile folgende commands:

set-workspace-index
change-phase-status
set-plot-option
etc.

Es gibt so um die 100 oder mehr Befehle dieser Art.
Ich würde nun gerne nur die ersten buchstaben nach jedem Bindestrich haben (sind ebenso zulässig als befehl):

s-w-i
c-p-s
s-p-o
etc.

Ist dies möglich, bzw. mit einem simplen Batchfile oder gar Excel zu schaffen?

Hoffe die Frage ist klar so wie sie ist face-smile

LG
-G

Content-Key: 174476

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

Printed on: April 16, 2024 at 19:04 o'clock

Member: Friemler
Friemler Oct 11, 2011 at 12:37:24 (UTC)
Goto Top
Hallo delvar,

solange die Befehle immer aus 3 durch Minuszeichen voneinander getrennten Teilen bestehen und keine Sonderzeichen (<>|&") enthalten, könnte das so gehen:

@echo off & setlocal


set "InFile=test.txt"  
set "OutFile=out.txt"  


for /f "usebackq tokens=1-3 delims=-" %%a in ("%InFile%") do (  
  set "Part1=%%a"  
  set "Part2=%%b"  
  set "Part3=%%c"  
  call :ProcessLine
)

exit /b


:ProcessLine
  >>"%OutFile%" echo %Part1:~0,1%-%Part2:~0,1%-%Part3:~0,1%  
exit /b


Gruß
Friemler
Member: delvar
delvar Oct 11, 2011 at 12:46:38 (UTC)
Goto Top
Wow, perfekt!

Also das war genau das was ich wollte.

Und nein, es sind nicht immer 3 Minuszeichen. Aber ich habe einfach den dadurch entstandenen Fehler, der ja immer der selbe ist, durch Textpad "Suchen" -> "Ersetzen durch" behoben.

Also danke vielmals für das Problem.

Ich setz den Thread auf "Fehler behoben".

Danke und schönen Tag
Georg