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-ID: 272263

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

Ausgedruckt am: 26.11.2024 um 04:11 Uhr

bastla
Lösung bastla 18.05.2015, aktualisiert am 19.05.2015 um 09:02:43 Uhr
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
xyxy-yx
xyxy-yx 19.05.2015 um 09:10:01 Uhr
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