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 Variable aus Text datei

Mitglied: Turrex0100

Turrex0100 (Level 1) - Jetzt verbinden

28.10.2008, aktualisiert 29.10.2008, 4134 Aufrufe, 2 Kommentare

Eine genaue lösung habe ich nicht gefunden,
aber ich glaube,die lösung das die loesung in diesem beitrag verborgen liegt.
Leider verstehe ich nicht wie ich den "for"Befehl in bat anwende.

https://www.administrator.info/index.php?content=a1e9fecad81bf0f1320c1ff ...

Undzwar habe ich eine textdatei mit namen, unterschiedlicer länge.
in jeder zeile steht einer.
jetzt möchte ich wie auch der andere user einen namen zufällig auswählen. der ausgewählte name soll dan in der .bat datei als variable zu verfügung stehen.
d.h:
am anfang steht eine datei
namen.txt
mit dem inhalt:

johannes
bernd
dieter
usw

und in der bat datei soll eine variable mit einem zufälligen namen entstehn:
wie:
set zufall_name=dieter

würd mich über eine antwort sehr freuen
mfg Turrex
Mitglied: bastla
28.10.2008 um 22:32 Uhr
Hallo Turrex0100 und willkommen im Forum!

Das könnte etwa so gehen:
01.
@echo off & setlocal 
02.
set "N=d:\namen.txt" 
03.
set "T=%temp%\NamNum.txt" 
04.
 
05.
findstr /n "^" "%N%">%T% 
06.
for /f "delims=:" %%i in (%T%) do set /a Anzahl=%%i 
07.
set /a Nr=%Random% %% Anzahl+1 
08.
 
09.
for /f "tokens=1* delims=:" %%i in ('findstr /b "%Nr%:" %T%') do set "zufall_name=%%j" 
10.
del %T% 
11.
echo %zufall_name%
Wenn Du auf das Löschen von %T% verzichtest, kannst Du nachvollziehen, dass in der Temporär-Datei "%temp%\NamNum.txt" die Namen wie folgt aufgelistet werden:
1:johannes 
2:bernd 
3:dieter 
4:usw
Dies wird erreicht, indem mit "findstr" zunächst in jeder Zeile von "namen.txt" nach dem Zeilenanfang ("^") gesucht (den muss es ja geben) und das Suchergebnis (das demnach alle Zeilen enthält) nummeriert ausgegeben wird (siehe Zeile 5).

Die "for /f"-Schleife in Zeile 6 geht nun alle Zeilen durch und liest den vor dem ersten vorkommenden Trennzeichen ("delimiter") ":" stehenden Teil der Zeile (also die Nummer) ein und weist sie der Variablen %Anzahl% zu. Dabei wird der Inhalt von %Anzahl% immer wieder überschrieben, bis letztendlich die Nummer der letzten Zeile in %Anzahl% stehen bleibt. Damit steht fest, wieviele Namen es insgesamt gibt.

Die Verwendung von "Zufallszahl" (%Random%) und "Modulo-Funktion" (in einem Batch als "%%" geschrieben) hat Biber ja im oben verlinkten Beitrag schon erklärt. Die vorläufig ermittelte Nummer (%Nr%) ist eine Zahl zwischen 0 und %Anzahl%-1 (also im Beispiel 3), weshalb dann noch ein "+1" benötigt wird, damit tatsächlich eine Zeilennummer von 1 bis %Anzahl% (hier: 4) herauskommt.

Nach dem Vorkommen dieser %Nr% plus anschließendem ":" gleich am Zeilenanfang wird nun in der Temporärdatei gesucht (siehe Zeile 9), wobei dieses Mal der hinter dem ersten Tennzeichen (":") der Ergebniszeile stehende Teil ("token") interessiert, weswegen die Unterteilung in der "for /f"-Schleife in "Teil 1" und "Rest" ("tokens=1*") vorgenommen wird. Die Zeilennummer wird auch hier als "%%i" zurückgegeben, während der Name als "%%j" zur Verfügung steht und der Variablen %zufall_name% zugewiesen werden kann.

Grüße
bastla
Bitte warten ..
Mitglied: Turrex0100
29.10.2008 um 13:06 Uhr
Ok, grossen dank für deine schnelle antwort!
Es klapptt alles wie gewollt und ich verstehe jetzt sogar den befehl for.^^

mfg Turrex
Bitte warten ..
Ähnliche Inhalte
Basic
Variablen Text einfügen
gelöst Frage von TheFalconBasic14 Kommentare

Hallo zusammen, ich hab ein Makro, welches automatisch eine E-MAil verschickt nachdem man in einer Message Box einen Text ...

Batch & Shell

Text Zeilenweise auslesen und variable überprüfen

Frage von BruendlBatch & Shell11 Kommentare

Moin Moin, ich habe eine Textdatei mit folgendem Inhalt: ich möchte jetzt gerne die beiden Werte, die von einem ...

Batch & Shell

In Batch eine Text Variable und ein Array vergleichen

Frage von DrMarksmanBatch & Shell5 Kommentare

Hallo Leute! Ich habe mich wieder zu meinen Ursprüngen des Programmierens zurück begeben und bin dabei ein kleines Programm ...

Batch & Shell

Datei als Variable auslesen und Variable ändern

gelöst Frage von chainsawBatch & Shell1 Kommentar

Hallo Profis, ich komme mit folgendem Problem nicht weiter: In dem Verzeichnis "C:\logfiles" landen bei mir Log-Dateien. Diese Log-Dateien ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 13 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 13 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...