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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Batch - Zufallszeilen aus txt-Datei anzeigen. Einige Macken im Skript

Mitglied: wiseolli

wiseolli (Level 1) - Jetzt verbinden

30.01.2011, aktualisiert 18.10.2012, 7415 Aufrufe, 4 Kommentare

Früher hatte ich ein Programm, das mir nach einer bestimmten Zeit (z.B. nach 30 min.) auf dem Desktop verschiedene Zitate/Fremdwörter/Prüfungsfragen usw. aus einer Textdatei Zeilenweise per Zufallsgenerator anzeigen konnte. Nach und nach konnte man so die Sachen auswendig lernen.
Nun wollte ich so etwas in Batch schreiben (möglichst ohne externe Programme). Dabei bin ich auf ein paar Problemchen gestoßen.

Hallo Leute,

es gibt einige Probleme in meinem Batch-Code, die ich nicht beseitigen kann.
Vielleicht könnten mir ja die Batch-Experten unter euch auf die Sprünge helfen
(bei den Schleifen blick ich nicht so richtig durch)


Kurze Beschreibung:
  • Es wird eine Text-Datei eingelesen.
  • Jede Zeile bekommt eine Nummer davor gestellt und alles (Nr.+Textzeilen) wird in eine temporäre Datei geschrieben.
  • Per Zufallsgenerator wird eine Zeile ausgewählt und für eine festgelegte Zeit angezeigt
  • Nach einiger Zeit wird wieder eine Zufallszeile aus der Temp-Datei angezeigt usw.


Die Macken sind:
  • Die Zeilen, die einstellige Nummern haben werden nicht angezeigt (scheinbar erst ab Zeile Nr. 10)
  • Größere Zahlen kommen öfters vor (ist nicht wirklich zufällig)
  • Manchmal werden auch zwei Zeilen auf einmal angezeigt (aber das ist nicht so schlimm wie Macke mit Zufallszahlen) z.B. Zeilen 35 und darunter 45 oder 38 und 48 gleichzeitig.


Mein Code:


Grüße (und vielen Dank schon mal im Voraus für die Hilfe)
wiseolli
Mitglied: 60730
30.01.2011, aktualisiert 18.10.2012
Salü,

Mal zum spielen in der schwarzen Kiste ganz ohne @echo off....

for /l %a in (1,1,100) do echo %a: a%a>>C:\script\random\123.in

findstr /l 4: C:\script\random\123.ini
  • Das ist das, was du in Zeile 74 machst und das kommt sinngemäß dabei heraus:
Ergo:
findstr /b /c:"4:" C:\script\random\123.ini
Gruß
Bitte warten ..
Mitglied: wiseolli
30.01.2011 um 16:55 Uhr
Hallo,

mit
for /l %a in (1,1,100) do echo %a: a%a>>%temp%\123.ini
findstr /l 4: %temp%\123.ini
findstr /b /c:"4:" %temp%\123.ini
hab ich's nun nachvollziehen können.

Vielen Dank TimoBeil!

Zeile 74 habe ich nun in
geändert. Und nun läufts.

Gruß
wiseolli
Bitte warten ..
Mitglied: pieh-ejdsch
30.01.2011 um 17:39 Uhr
moin,

in Zeile 48 und 51 gibst Du jeweils Die Zeilennummern von der OriginalDatei aus aber blendest die Leerzeilen aus
somit kommst Du aber auf einen Falschen EndWert, wenn Du paar verstreute LeerZeilen im Original hast. - Die werden ja auch mitgezählt und dein Script zeigt nichts an, wenn genau diese Zeile rausgepickt würde.
wenn Du den genauen Zeilenwert ohne die Leerzeilen haben willst, musst Du findstr 2 mal nehmen das erste ohne Option /n
wenn Du Type Datei nicht zur Konvertierung der Datei nimmst, kannst Du die Datei dem 1. Findstring so mitgeben.

in Zeile 51 kannst Du die Zeilen auch gleich mithilfe der TempDatei zählen
wenn Du in Zeile 74 /c: weglässt geht es auch. Du hast ja schon /b dastehen.

Gruß Phil
Bitte warten ..
Mitglied: wiseolli
05.02.2011 um 15:11 Uhr
Hallo, und danke für den Kommentar Phil.

in Zeile 48 und 51 gibst Du jeweils Die Zeilennummern von der OriginalDatei aus aber blendest die Leerzeilen aus
Tatsächlich. Hab paar leere Zeilen ins Orig. eingefügt. Und wenn ich die erstellte Temp öffne, sind die Leerzeilen (und deren Anfangsnummern nicht da).

Da ich aber in den "for-Schleifen" nicht durchblicke, werde ich versuchen die Leerzeilen zu vermeiden. Und zur Not bemühe ich halt die Funktion "Delete Blank Lines" im Notepad++

wenn Du in Zeile 74 /c: weglässt geht es auch. Du hast ja schon /b dastehen.
Stimmt, hab's probiert, geht auch ohne.
Hatte den Befehl von TimoBeil so 1:1 übernommen, da die beiden Schalter in findstr /? für mich auch passend klangen:
Danke für die Hinweise/Verbesserungen noch mal - Dat Ding rennt wie ich's wollte!

Gruß
wiseolli
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch : TXT-Datei auslesen
gelöst Frage von Newplay123Batch & Shell20 Kommentare

Hallo, ich habe eine Textdatei mit dem Inhalt " "Test" ". Also die zweiten Anführungszeichen sind auch mit in ...

Entwicklung

Batch oder Powershell für .txt-Datei

gelöst Frage von freshman2017Entwicklung5 Kommentare

Hallo liebe Gemeinde, ich habe eine .txt-Datei, die aus einer Artikelnummer und einem Bildname bestehen soll. Ausgangsdatei (export.txt) ist ...

Batch & Shell

Batch-Skript Schleife älteste Datei umbenennen

Frage von pentaddBatch & Shell9 Kommentare

Hallo zusammen, Ich möchte per Batch-Skript folgendes umsetzen: älteste Datei in einem Ordner finden Datei umbenennen: vom Dateinamen die ...

Windows 7

BATCH: Alter einer TXT-Datei bestimmen

gelöst Frage von ahstaxWindows 75 Kommentare

Hallo, wie bekomme ich mit einer DOS-Batch das Alter einer TXT-Datei bestimmt und lassen dann, bspw bei Alter >16h, ...

Neue Wissensbeiträge
Sicherheit
Alexa un Co. TU-Darmstadt entwickelt Anti-Spy Tool
Information von the-buccaneer vor 10 StundenSicherheit1 Kommentar

Moinsen! HR-Info hatte heute ein Feature in dem das "LeakyPick" der TH-Darmstadt vorgestellt wurde. Das Tool existiert bisher nur ...

Linux Tools
Rsync datenvolumen reduzieren mit -fuzzy
Anleitung von NetzwerkDude vor 2 TagenLinux Tools

Moin, aus der Kategorie "Häufig übersehene Parameter": Meistens benutzt kaum jemand den fuzzy Parameter von rsync, und er taucht ...

Sicherheit

Citrix ADC, Gateway u. SD-Wan: Schwachstellen patchen

Information von kgborn vor 5 TagenSicherheit

Keine Ahnung, wie viele Admins von Citrix-Applicances hier unterwegs sind und ob die Versorgung mit Advisories klappt. Aber im ...

Off Topic

Im Tel Raum von Hamburg (040) sind mal wieder viele Indische Microsoft Anrufer unterwegs

Information von TomTomBon vor 6 TagenOff Topic16 Kommentare

Moin Moin, Die sind so schlecht das sogar meine Frau sofort die erkannt hat was die sind. Und Ihr ...

Heiß diskutierte Inhalte
Windows 10
OneDrive: GUI lädt, move nicht
Frage von holliknolliWindows 1028 Kommentare

Hallo liebe alle, befindet sich jemand aus dem Kreise der MS-Developer, speziell Onedrive unter den Teilnehmern hier? Frage: warum ...

Router & Routing
Fritzbox Feste IP-Adresse Zugang
gelöst Frage von TobiTobiRouter & Routing19 Kommentare

Guten Tag liebes Forum, Ich habe ein Problem wo ich nicht weiterkomme! Situation: Netzwerk: DSL-Modem(daytrec)-OPNSense-Netzwerk Habe aktuell mein Anschluss ...

Festplatten, SSD, Raid
Backup einer an die FRITZBox angeschlossenen Festplatte
Frage von DJ-KeyFestplatten, SSD, Raid16 Kommentare

Habe eine Frstplatte, die mehrere Partitionen beherbergt. Die Festplatte die an der FRITZ!Box als NAS dient ist schon älter ...

Netzwerke
Wake on Lan funktioniert nicht durch VLANs
gelöst Frage von NetworkersvennyNetzwerke11 Kommentare

Hi Leute, Ich versuche derzeit Wake on Lan in unserem Betrieb zu etablieren. Bios Einstellung sind an Rechnern durch ...