Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch, textdatei zeile für zeile auslesen und in variable schreiben

Frage Entwicklung

Mitglied: d3luxe

d3luxe (Level 1) - Jetzt verbinden

17.03.2009, aktualisiert 18:50 Uhr, 14436 Aufrufe, 8 Kommentare

Hallo,
Meine batch soll eine art Script einlesen, dieses Skript soll in einer textdatei liegen! Es soll zeile für zeile lesen und jede zeile in die gleiche variable schreiben, Zeile1 kommt z.b. in Variable A dann soll es schauen was variable A ist und je nach dem zu nem punkt in der batch springen oder etwas bestimmtes tun! Dann soll es die nächste zeile einlesen! Das einlesen ist die grundlage! Deswegen habe ich noch nichts geschrieben! Mein problem ist das einlesen! Ich habe es mit ner for schleife versucht aber das geht nicht ganz, und die ganzen ergebnisse bei google oder hier im forum haben mir auch nicht wirklich weiter geholfen! Deswegen frage ich nochmal nach!

Achja wenn ich schonmal frage... ist es möglich mit "Dir" alle dateien von nem gewissen zeitraum aufzulisten zb. die letzten 4 monate also alles was geändert oder neu erstellt wurde aufzulisten? Oder soll ich für diese frage einen neuen Threat eröffnen?

Danke schonmal im vorraus,

Mit freundlichen Grüßen d3luxe
Mitglied: bastla
17.03.2009 um 18:54 Uhr
Hallo d3luxe!

Schematisch etwa so:
01.
@echo off & setlocal 
02.
for /f "usebackq delims=" %%i in ("D:\Dein Text.txt") do "set A=%%i" & call :ProcessLine 
03.
goto :eof 
04.
 
05.
:ProcessLine 
06.
echo Gelesene Zeile: %A% 
07.
::Auswertung hier 
08.
if /i "%A%"=="Start" goto :Start 
09.
:: 
10.
::weitere Auswertungen 
11.
:: 
12.
::zurück zum Hauptprogramm 
13.
goto :eof 
14.
 
15.
:Start 
16.
echo Die Zeile lautet: "Start" 
17.
::was noch so anliegt ... 
18.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: d3luxe
17.03.2009 um 19:03 Uhr
Danke für die schnelle antwort bastla, ich werde das ganze jetzt probieren... kannst du mir auch noch die andere frage beantworten die ich oben dazueditiert hatte?
Bitte warten ..
Mitglied: bastla
17.03.2009 um 20:25 Uhr
[Edit] Da neuer Thread bereits eröffnet, Antwort dort ... [/Edit]
Bitte warten ..
Mitglied: d3luxe
17.03.2009 um 22:27 Uhr
Hallo,
nachdem ich das problem mit dem log mit deiner hilfe gelöst hab gehts hier wieder weiter :D

Das script das mein programm verarbeiten soll, soll eigentlich nur löschen können!
Ich habe folgende makierungen für in das script geplant:

01.
killprocess 
02.
deldata 
03.
delreg 
04.
delkey 
05.
changereg 
06.
deldir
alles unter killprocess sind prozesse die beendet werden sollen
alles unter deldata sind dateien die gelöscht werden sollen
alles unter delreg sind registryeinträge die gelöscht werden sollen
alles unter delkey sind registryschlüssen die gelöscht werden sollen
usw.

So... Jetzt muss das mein script erstmal feststellen was muss gemacht werden!

Für besseres verständnis werde ich erstma den quellcode posten!

01.
  
02.
@echo off & setlocal 
03.
echo ------------------------ 
04.
echo   1=Log erstellen 
05.
echo   2=Script verarbeiten 
06.
echo ------------------------ 
07.
set /p wa= 
08.
if %wa% = 2 goto :2 
09.
if %wa% = 1 goto :1 
10.
:2 
11.
for /f "usebackq delims=" %%i in ("D:\Dein Text.txt") do "set A=%%i" & call :ProcessLine 
12.
goto :eof 
13.
:ProcessLine 
14.
if %A% == deldir 
15.
if %A% == changereg 
16.
if %A% == delkey 
17.
if %A% == delreg 
18.
if %A% == deldata goto data 
19.
if %A% == killprocess goto kill 
20.
:kill 
21.
dinge die getan werden sollen 
22.
:data
bei dinge die getan werden sollen muss es ja wieder neu auslesen und zwar zeile 2 aber das kann es in dem mom nicht.. wenn du verstehst was ich meine! Wie kann ich das machen das es erst ausliest was es ist den "typ" dann die dateien, brauche ich da 2 variablen und 2 schleifen? und was ist wenn die schleife die den Typ ausliest dann als wert eine datei bekommt also zb. an zeile 2 geht.. kannst du mir das ma erklären? Soll ich dann im Script die Typen speziell makieren? Mit nem : oder ; vorne oder hinten? damit das script weiß das ist ein typ das ist ein wert und wie mache ich das? ^^

Und dann soll es Das eigentliche script nicht an nem speziellen pfad suchen sondern dort wo die batch später startet!

Ich werde jetzt schlafen gehen! Lass dir ruhig zeit mit der antwort ich werde morgen so gegen 18:00 uhr wieder vorbeischauen :D
Bitte warten ..
Mitglied: bastla
17.03.2009 um 23:03 Uhr
Hallo 3dluxe!

Wenn Du die einzelnen Zeilen eindeutig zuordenbar machst, kannst Du mit "findstr" die gerade benötigten herausfiltern, zB
killprocess:Prozess1 
killprocess:Prozess2 
killprocess:Prozess3 
deldata:D:\Eine Datei.txt 
deldata:D:\Eine weitere Datei.txt 
deldata:D:\Noch eine Datei.txt
Zum Auslesen könntest Du dann eine Schleife dieser Art verwenden:
01.
@echo off & setlocal 
02.
for %%i in (killprocess deldata delreg) do ( 
03.
    for /f "tokens=1* delims=:" %%a in ('findstr /b "%%i:" "%~dp0\Script.txt"') do call :%%i "%%b" 
04.
05.
goto :eof 
06.
 
07.
:killprocess 
08.
echo Prozess %1 beenden ... 
09.
:: 
10.
:: 
11.
goto :eof 
12.
 
13.
:deldata 
14.
echo Loesche %1 ... 
15.
:: 
16.
:: 
17.
goto :eof 
18.
 
19.
:delreg 
20.
echo Entferne RegKey %1 
21.
:: 
22.
:: 
23.
goto :eof
Anmerkung: Da die ausgeführte Batchdatei als Parameter %0 zur Verfügung steht, kannst Du mit "%~dp0" (siehe gegen Ende der Hilfe "for /?") Laufwerk und Pfad des Batches ermitteln und so die im selben Ordner liegende "Script.txt" finden.

Grüße
bastla
Bitte warten ..
Mitglied: d3luxe
18.03.2009 um 20:05 Uhr
Danke bastler es funktioniert.. ich werd dich un administrator.de in der readme nennen :D Wenn das tool ma fertig is :D Ich lass ma noch ungelöst wer weiß schon was noch passiert!

Kannst du mir sagen ob es einen befehl gibt um prozesse zu beenden? Bei Vista habe ich ja taskkill und bei xp? Muss man da nachrüsten? ich hab mir schon was heruntergeladen.. aber ich wollte eiglich alles mit bordmitteln lösen... fällt dir noch was ein?
Bitte warten ..
Mitglied: bastla
18.03.2009 um 21:44 Uhr
Hallo d3luxe!

"taskkill" (und "tasklist") gibt es auch bei XP.

Grüße
bastla
Bitte warten ..
Mitglied: d3luxe
25.03.2009 um 16:20 Uhr
Also ich werde das ganze mal einbauen und testen, ich habe das Gefühl das ich bald auf ein weiteres Problem stoßen werde aber dazu werde ich dann wieder antworten.. und dieses mal wieder schneller ^^ ich werde nicht so schnell ins Krankenhaus müssen!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Per Batch Textdatei Spaltenweise auslesen nochmal weil ich dumm bin (9)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
Batch Textdatei Spaltenweise auslesen (7)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch jede Zeile einer Textdatei prüfen (4)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...