Top-Themen

Aktuelle Themen (A bis Z)

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

for string in Datei schreiben und später wieder einlesen

Frage Entwicklung Batch & Shell

Mitglied: bodyparts

bodyparts (Level 2) - Jetzt verbinden

17.10.2009, aktualisiert 22:36 Uhr, 4055 Aufrufe, 9 Kommentare

Moin,

ich möchte den Wert einer for schleife wenn ich das Programm beende in eine Datei schreiben und wenn ich das Programm wieder starte soll der Wert eingelsenden werden.

Die Schleife sieht so aus:

01.
@for /d %%i in (X:\Daten\*) do @Findstr /i /C:%suche% %%i\Daten_info.txt>nul 2>nul && call :todo "%%i"
sprich in welchem Ordner die Schleife ebendet wurde dort soll sie später laut abfrage wieder starten können.

wie geht das wohl

Gruß in den Abend
Mitglied: bastla
17.10.2009 um 22:15 Uhr
Hallo bodyparts!

Einmal mehr ist Deine Problembeschreibung sehr sparsam ausgefallen ...

Falls gemeint sein sollte, dass Du protokollieren willst, welche Ordner bereits verarbeitet wurden, um diese beim nächsten Lauf des Batches auslassen und nur neu hinzugekommene behandeln zu können, dann (ungetestet) etwa so:
for /d %%i in (X:\Daten\*) do findstr "%%i" /c:Erledigt.txt || findstr /i /C:%suche% %%i\Daten_info.txt>nul 2>nul && (>>Erledigt.txt echo %%i & call :todo "%%i")
Grüße
bastla
Bitte warten ..
Mitglied: bodyparts
17.10.2009 um 22:54 Uhr
okay ...

bastla, dann muss ich an meiner Formulierung arbeiten.

Die "For" Schleife ruft ja ein :todo auf, wenn ich jetzt das Programm einfach schliessen würde, dann möchte ich beim erneuten aufrufen der Batch genau an der Stellen weiter laufen. Es werden ja alle Unterordner von x:\Daten durchsucht, jedesmal wenn ich die Batch starte, startet sie von vorne is ja auch so gewollt. Nun möchte ich den Punkt speichern und abfragen ob am letzten Punkt weiter gesucht bzw dort weiter läuft.

Hoffe das war jetzt verständlicher.

Gruß
Bitte warten ..
Mitglied: bastla
17.10.2009 um 23:10 Uhr
Hallo bodyparts!

Grundsätzlich gehe ich nicht davon aus, dass "for"-Schleifen abgebrochen werden (daher fehlte diese explizite Information oder der Code, der zum Abbruch führt).

Mein Ansatz sollte aber auch für diesen Fall passen, da in der Datei "Erledigt.txt" (einen Pfad kannst Du ja ergänzen und auch eine Variable dafür zu verwenden wäre sinnvoll) jeder bearbeitete Ordner eingetragen wird - beim nächsten Durchlauf wird überprüft, ob der Ordner schon in der Datei steht, und falls dem so sein sollte, der Ordner (wegen der Verknüpfung mit "||") nicht verarbeitet.

Grüße
bastla
Bitte warten ..
Mitglied: bodyparts
19.10.2009 um 10:10 Uhr
Moin Bastla,

die "For" Schleife wird unterbrochen, weil es eine Suche ist. Hat man gefunden was man gesucht hat unterbreche ich die Schleife. Das rausschreiben ist mir klar, aber wie lesen ich den Wert wieder ein?
Kann ich den Wert 1~%, der aus der Schleife rausgeschrieben wird, einfach am Anfang der Batch wieder setzen? Wie lese ich die erste Zeile der Datei wieder ein.

Ich habe auch hier wieder eine "for" Schleife gefunden, denke dies ist aber nicht nötig, sondern es müsste auch mit einer kleiner Zeile gehen.

Gruß

so etwas später....

01.
@for /f " usebackq delims==" %%i in ("c:\temp\wert.txt) do "set A=%%i" 
möchte den Eintrag aus der Datei wert.txt als Variabel A setzen.... geht aber nicht, warum wohl

Gruß
Bitte warten ..
Mitglied: bastla
19.10.2009 um 11:42 Uhr
Hallo bodyparts!

Wenn die Schleife abgebrochen wurde, kann sie nur wieder von vorne gestartet werden - dann muss bekannt sein, was bereits verarbeitet wurde (um es dieses Mal auslassen zu können), und genau diese Funktionalität soll mein obiger Vorschlag bieten.

Ansonsten viel Glück bei der Suche nach einer anderen Lösung ...

Grüße
bastla
Bitte warten ..
Mitglied: bodyparts
19.10.2009 um 12:05 Uhr
Hallo Bastla,

okay, werde ich dann testen. Ich werde dann vorher abfragen, ob die Suche vorgesetzz werden soll, oder halt vor vorne. Gegenfalls die Datei löschen.

Gruß Bodyparts
Bitte warten ..
Mitglied: bodyparts
19.10.2009 um 16:27 Uhr
Hallo Bastla,

die Datei wird geschrieben, aber wenn ich die Batch wieder starte wird nicht fortgesetzt, sondern wieder beim gefundenen Suchstring von vorne gestartet.

Kannst du deinen Code überpürfen?

Gruß bodyparts
Bitte warten ..
Mitglied: bastla
19.10.2009 um 16:43 Uhr
Hallo bodyparts!

So sollte es besser gehen (auch noch die Berücksichtigung von Groß-/Kleinschreibung unterbunden):
for /d %%i in (X:\Daten\*) do findstr /i /c:"%%i" Erledigt.txt || findstr /i /C:%suche% %%i\Daten_info.txt>nul 2>nul && (>>Erledigt.txt echo %%i & call :todo "%%i")
Grüße
bastla
Bitte warten ..
Mitglied: bodyparts
20.10.2009 um 10:37 Uhr
Hallo Bastla,

klasse, läuft.

Jetzt möchte ich noch eine andere Lösung testen. Leider verstehe ich es wohl noch nicht.

Mit der selben Schleife möchte ich aus jedem Unterordner aus x:\daten die Datei abc.jpg öffnen und dies ebenfalls mit einer Datei protokolieren. Somit kann ich bei bedarf wieder an der abgebrochenen Schleife vorfahren.

Somit hätte ich wohl alle Möglichkeiten um den Datensatz von nun ca. 1000 Ordner zuverwalten.

Grüße Bodyparts
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Schreiben eines Strings mit Leerzeichen in eine Datei
gelöst Frage von c20082005Batch & Shell6 Kommentare

Hallo, nach langem Rum- und Ausprobieren möchte ich Euch um Hilfe bitten für folgendes Problem: Ich möchte mit einer ...

C und C++
Buchstabenweise in String schreiben
gelöst Frage von kunert0345C und C++20 Kommentare

Hallo, ich habe in dem Code eine Schleife die Buchstabenweise ein Text Datei verarbeitet und ich möchte bei jedem ...

C und C++
String einlesen in Array und wieder ausgeben von hinten
Frage von ProtectedC und C++4 Kommentare

Hallo, ich würde gerne einen String einlesen bzw. char und dann andersrum wieder ausgeben. Also: Otto Maoam zu: maoaM ...

JavaScript
String mit Umlauten in HTML-Textbox schreiben
Frage von mabue88JavaScript2 Kommentare

Hallo, ich weiss, dass das Thema eigentlich ausreichend im Netz behandelt wird. Aber ich bekomme es einfach nicht hin ...

Neue Wissensbeiträge
Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 1 StundeMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 14 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 21 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 22 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...