xyxy-yx
Goto Top

Text von einem Array in einer Datei finden, wenn nicht vorhanden hinzufügen

Hallo,

Ich möchte einen Array, welches verschiedene Texte beinhaltet, mit einer FOR-Schleife durchlaufen lassen und wenn der Text nicht vorkommt soll er am ende der Datei angehängt werden. Leider funktioniert mein derzeitiger versuch nicht.

@echo off

set arrayline=aaa
set arrayline=bbb
set arrayline=ccc
set arrayline=ddd
set arrayline=eee

for /l %%a in %arrayline% do (
FIND /C /I %%a c:\test.txt
IF %ERRORLEVEL% NEQ 0 (
echo %arrayline[%%a]%
ECHO ^Text %arrayline[%%a]%>>c:\test.txt
)
)

  • Kann ich das Array auch so schreiben: (Übersichtshalber bei vielen Einträgen)

set "arrayline=aaa
bbb
ccc
ddd
eee"

und anschließen den Zeilenumbruch entfernen, sodass die FOR-Schleife nur das set "arrayline=aaa bbb ccc ddd eee" sieht?
  • Mit enabledelayedexpansion und statt % dann ! hat es leider auch nicht funktioniert.
  • Ist es besser mit einer WHILE-Schleife falls es sie in einer Batch Datei gibt?
  • Oder bin ich auf dem falschen Weg und es gibt einfachere Lösungsmöglichkeiten?

Danke für eure Hilfe

Content-Key: 272263

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

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

Member: bastla
Solution bastla May 18, 2015, updated at May 19, 2015 at 07:02:43 (UTC)
Goto Top
Hallo xyxy-yx und willkommen im Forum!

Warum nicht einfach die Texte zeilenweise in eine Textdatei schreiben und diese dann per FOR-Schleife abarbeiten - schematisch etwa so (soferne die Texte nicht bestimmte Sonderzeichen, wie etwa "&" oder ">", enthalten):
for /f "usebackq delims=" %%i in ("D:\Deine Texte.txt") do findstr /ic:"%%i" c:\test.txt>nul || >>c:\test.txt echo %%i
Grüße
bastla
Member: xyxy-yx
xyxy-yx May 19, 2015 at 07:10:01 (UTC)
Goto Top
Besten Dank hat wunderbar funktioniert.
Habe bei D:\Deine Texte.txt die Pfadangabe weggelassen, dann wird die Text Datei vom gleichen Ordner genommen und ich habe keine Probleme, wenn ich die Dateien (Test.cmd und Deine Texte.txt) verschiebe.
mfg
xyxy-yx