batch12
Goto Top

Zeilen aus Textdatei auslesen und danach weiterverwenden

Guten Abend,

ich habe ein Problem. Mein problem ist, dass ich Zeilen aus einer Text datei aus lesen will und diese danach in eine batch datei einfügen will.

Hier noch mal etwas genauer:
@echo off
set log="%userprofile%\Desktop\files.txt"  
if exist %log% del %log%

for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
    if exist %%d:\ (
        %%d:
        cd \
        dir *.vb*;autorun.inf;boot.com /s
        dir *.vb*;autorun.inf;boot.com /ah /s
        attrib
    )
) >> %log%

Wenn es nun diese datei files.txt gibt und dort etwas drin steht, wie kann ich dann die zeile/zeilen auslesen und danach in einer batch weiter verwenden?

Hier ein beispiel btw. das was ich damit vorhabe:

@ECHO OFF
attrib -s -r -h c:\WINDOWS\system32\abc.vbs
del c:\WINDOWS\system32\abc.vbs
attrib -s -r -h c:\abc.vbs
attrib -s -r -h c:\autorun.inf
attrib -s -r -h d:\abc.vbs
attrib -s -r -h d:\autorun.inf
del c:\abc.vbs
del c:\autorun.inf

In der files.txt datei steht ein Pfad z.B. c:\abc.vbs. Jetzt ist meine frage wie kann ich diesen pfad auslesen und dann in meiner 2ten batch datei verwenden?

attrib -s -r -h "hier der pfad aus der filestxt datei"  

del "hier der pfad aus der filestxt datei"  

Ich hoffe ich habe mich verständlich ausgedrückt und ich hoffe das ihr mir bei meinem Problem weiterhelfenkönnt.

Gruß,
batch12

Content-ID: 124597

Url: https://administrator.de/forum/zeilen-aus-textdatei-auslesen-und-danach-weiterverwenden-124597.html

Ausgedruckt am: 17.04.2025 um 00:04 Uhr

60730
60730 09.09.2009 um 19:43:42 Uhr
Goto Top
Servus,

Attrib kann nicht nur -+s (Systembit setzen löschen)

  • - es kann auch Unterordner /s und Platzhalter *.vbs
  • - und das gleiche gilt auch für del

btw: Deine Frage...

for /f "delims=" %%i in ('"datei"') do usw...

Einfach mal for /? durchkauen.

Gruß
batch12
batch12 09.09.2009 um 20:42:56 Uhr
Goto Top
Okay ich werds mal versuchen.

Auf der Schule haben wir nämlich so ein nerviges Script...welches eine vbs datei und autorun.inf erstellt.
Jetzt will ich versuchen diese Datein zulöschen, das ganze soll ich bis Freitag machen.
Ich hoffe ihr könnt mir weiterhelfen falls ich etwas nicht richtig verstehen sollte.

Edit: Ich habe mir jetzt mal kurz for/? angesehen und weiß jetzt ungefähr für was for genau gut ist, aber ich weis nicht wie ich es jetzt hinekommen soll, dass der Pfad automatisch in eine batch datei eingfügt wird.

Könnte mir das bitte jemand etwas genauer erklären?

Danke schon einmal in voraus.

MfG,
batch12


Edit2: So ich habe jetzt alles von meinem Programm fertig mir fehlt jetzt nur noch das auslesen und einfügen in eine Batch. Ich hoffe ihr könnt mir helfen, denn ich habe das mit for nicht genau verstanden
(wie in edit 1 beschrieben)
AlbertMinrich
AlbertMinrich 09.09.2009 um 21:59:26 Uhr
Goto Top
Probier mal das:
for /F %%i in (files.txt) do attrib -s -r -h %%i
batch12
batch12 09.09.2009 um 22:12:07 Uhr
Goto Top
Leider kommt folgende Fehlermeldun %%i kann syntaktisch an dieser Stelle nicht ver arbeitet werden.

Mach ich da irgend einen feheler

@echo off
set log="%userprofile%\Desktop\files.txt"  
if exist %log% del %log%

for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
    if exist %%d:\ (
        %%d:
        cd \
        dir *.vb*;autorun.inf;boot.com /s
        dir *.vb*;autorun.inf;boot.com /ah /s
        attrib
    )
) >> %log%

Zweite Batch Datei:

@ECHO OFF
attrib -s -r -h %%i in (files.txt) do attrib -s -r -h %%i.vbs
del for /F %%i in (files.txt) do attrib -s -r -h %%iattrib -s -r -h c:\abc.vbs
attrib -s -r -h for /F %%i in (files.txt) do attrib -s -r -h %%i
attrib -s -r -h for /F %%i in (files.txt) do attrib -s -r -h %%i
attrib -s -r -h for /F %%i in (files.txt) do attrib -s -r -h %%i
del c:\for /F %%i in (files.txt) do attrib -s -r -h %%i
del c:\for /F %%i in (files.txt) do attrib -s -r -h %%i

Ich denke ich habe da etwas falsch verstanden oder ?

Ich weiß nicht genau wo es hin gehört.

Kann man das überhaupt machen?
for /F %%i in (files.txt) do attrib -s -r -h %%i

Hier mit liest man doch den ganzen Text aus oder?

Ich muss ja Dateien aus verschiedenen laufwerken löschen.

attrib -s -r -h "hier der pfad aus der filestxt datei"  

del "hier der pfad aus der filestxt datei"  

MfG,
batch12
bastla
bastla 09.09.2009 um 22:23:04 Uhr
Goto Top
Hallo batch12 und willkommen im Forum!

Schleifen sind sehr nützlich, aber, wie TimoBeil oben schon angesprochen hat, gelegentlich gar nicht nötig - wenn Du tatsächlich zB alle "autorun.inf" auf D: eliminieren willst, sollte
    del /s /ar D:\autorun.inf >nul 2>nul
    del /s /a D:\autorun.inf >nul 2>nul
schon genügen ...

Um das tatsächlich auf allen Laufwerken zu erledigen, dann doch mit Schleife:
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
    del /s /ar %%d:\autorun.inf >nul 2>nul
    del /s /a %%d:\autorun.inf >nul 2>nul
)
Grüße
bastla
batch12
batch12 09.09.2009 um 22:30:52 Uhr
Goto Top
Danke für die Begüßung.

Heißt das das alle autorun.inf dateien gelöschst werden?

Könnte ich auf die gleiche weise alle vbs dateien löschen?

Und wie ist das mit c:\windows\system\system32\abc.vbs

Kann ich die damit auch löschen?

MfG,
batch12

Edit: Ist mit /ar... /a und /r gemeint?
AlbertMinrich
AlbertMinrich 09.09.2009 um 22:31:16 Uhr
Goto Top
Wenn in der Datei files.txt diese Zeilen drin stehen:
c:\abc\sonstwas
d:\def\sonstwas
dann führt die Zeile
for /F %%i in (files.txt) do attrib -s -r -h %%i
folgende Aktionen durch
attrib -s -r -h c:\abc\sonstwas
attrib -s -r -h d:\def\sonstwas
bastla
bastla 09.09.2009 um 22:42:50 Uhr
Goto Top
Hallo batch12!
Ist mit /ar... /a und /r gemeint?
Damit ist "/ar" (oder, wenn Du willst, auch "/a:r") gemeint - also alle Dateien mit Schreibschutz (das Archiv-Bit interessiert in diesem Zusammenhang ja nicht wirklich).

Mit "/a" und nix dahinter ist jedes (andere) oder auch kein Attribut gemeint.

Grüße
bastla

P.S.: Die Antworten auf die anderen Fragen findest Du beim Testen selbst ...
bastla
bastla 09.09.2009 um 22:45:01 Uhr
Goto Top
@AlbertMinrich
Wenn allerdings nicht sicher ist, dass die Datei "files.txt" keine Pfade oder Dateinamen mit Leerzeichen enthält, wäre
for /F "delims=" %%i in (files.txt) do attrib -s -r -h "%%i"
vorzuziehen ...

Grüße
bastla
batch12
batch12 09.09.2009 um 22:48:45 Uhr
Goto Top
Okay vielen dank aber leider kann ich erst Freitag testen, weil ich erst dann wieder an die schul pcs komme und ich den virus nicht selber habe.

Achja eine frage hab ich noch:

Ein Beispiel:

reg delete HKLM\..\Run: [%computername%] C:\WINDOWS\SYSTEM32\......

Dieser Befehl müsste doch funktioniernen, oder?

MfG,
batch12

Edit: Wenn ich Batch dateien nach einander ausführen will kann ich dann auch einfach am ender der ersten batch datei schreiben : start test 2.bat?
Oder gibts da noch irgendeinen anderen befehl?
batch12
batch12 10.09.2009 um 22:48:58 Uhr
Goto Top
Noch einmal ein danke für die hilfe. @ bastala ich habe dir eine nachricht geschrieben.

MfG,
batch12