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

Batch startet Zufallsdatei

Frage Entwicklung Batch & Shell

Mitglied: Chipchamp12

Chipchamp12 (Level 1) - Jetzt verbinden

28.01.2009, aktualisiert 21:44 Uhr, 5998 Aufrufe, 7 Kommentare

Hallo, ich möchte, dass eine Batch eine zufällige .txt Datei startet.
Es sind viele .txt Dateien mit unterschiedlichen Namen in einem Ordner!
Die Batch soll nun eine zufällige der vielen txt Dateien in die Batch einfügen!
Also

set /p variable= < zufällige.txt

Es sollte möglichst ein und-die-selbe Datei nicht mehrmals nacheinander gestarted werden!
Oder wenigstens min. 5 oder 6 andere vorher!
Mitglied: 60730
28.01.2009 um 22:06 Uhr
Salü mit ü.

  • eine Batch soll eine .txt starten?
  • aber seit wann sind .txt Dateien ausführbare (startfähige) Programme?
  • Seit wann ist das /p hinter Set bei dir std. und was hat das mit dem "Problem" zu tun?
  • Und warum ist bei dir nach jeder Zeile dieses Zeichen! und bei mir dieses?

"Zufallszahlen" kannst du anhand von Time /t in den Millisekunden finden.
sorry, aber irgendwie fühl ich mich nicht angespornt - oder wie es ein Mitstreiter im Forum so treffend formuliert hat:
Warum sollte ich mir Mühe geben, wenn du es nicht macht?

Gruß
Bitte warten ..
Mitglied: Chipchamp12
28.01.2009 um 22:15 Uhr
Okay, dass hier ist das "Programm". Es soll zum helfen von Vokabeln dienen.

@echo off
:startofthefile
cls
echo.
echo Dies ist ihre Vokabellernhilfe!
echo Sie konnen mit diesem Programm Vokabeln eingeben und abfragen.
echo Bitte melden Sie sich mit ihren Benutzerdaten an.
echo Hinweis! Wenn Sie keinen Account haben, tippen sie "new" ein.

set /p name= Bitte melden Sie sich an:
if exist %name%1.txt goto log
if %name%==new goto :new


:new
echo.
echo Sie konnen nun einen neuen Benutzer erstellen.
echo Bitte tippen Sie ihren gewunschten Benutzernamen ein!
set /p newname= Ihr neuer Name:
if not exist %newname%1.txt goto allk
pause > nul
:allk
echo %newname% > %newname%1.txt
echo.
echo Bitte tippen Sie ihren gewunschtes Passwort ein!
set /p newpass= Ihr Passwort:
echo %newpass% > %newpass%.txt
pause > nul
echo.
echo Die Daten wurden gespeichert.
set /p d1= < %newname%1.txt
echo Ihr Name ist: %d1%
set /p d2= < %newpass%.txt
echo Ihr Passwort ist: %d2%
echo.
echo Die Einstellung ist abgeschlossen.
echo Starten Sie das Programm nun neu.
pause > nul
exit

:log
set /p nowpass= Bitte geben Sie Ihr Password ein:
if exist %nowpass%.txt goto correctlogin
:correctlogin
cls
echo.
echo Willkommen in Ihrem Vokabelaccount!
echo Sie konnen nun Vokabeln eingeben, oder Abfragen.
echo Tippen Sie nun Abfrage ein, um Ihre Vokabeln abzufragen.
echo Tippen Sie nun Eingabe ein, um Vokabeln einzugeben.
set /p chose= Was wollen Sie heute machen:
if %chose%==Abfrage goto abfrage
if %chose%==Eingabe goto eingabe
if %chose%==ABFRAGE goto abfrage
if %chose%==EINGABE goto eingabe
if %chose%==abfrage goto abfrage
if %chose%==eingabe goto eingabe
if not %chose%==eingabe goto false
if not %chose%==Eingabe goto false
if not %chose%==EINGABE goto false
if not %chose%==abfrage goto false
if not %chose%==ABFRAGE goto false
if not %chose%==Abfrage goto false

:false
echo.
echo Die Eingabe enthielt einen Fehler, bitte versuchen Sie es erneut
pause > nul
goto log

:eingabe
echo.
echo Sie können nun Vokabeln eingeben.
echo Bitte schreiben Sie erst das Bekannte,
echo dann die korrekte Antwort.
md Vokabelnvon%name%
cd Vokabelnvon%name%
cls
set /p frag= Bekannt:
echo %frag% > %frag%.txt
set /p antw= Antwort:
echo %antw% > %frag%1.txt
pause

:abfrage
cd Vokabelnvon%name%
set /p abfragevon = < gehen.txt
echo %abfragevon% = ?
set /p meinung =
set /p ant = < gehen1.txt
IF %meinung% == %ant% GOTO :WAHR
REM hier landet man wenn der if-Ausdruck falsch ist
GOTO WEITER
:WAHR
REM hier landet man wenn der if-Ausdruck wahr ist
echo Willkommen Zuhause
REM Jetzt wird der if Zweig verlassen
pause

:WEITER
echo.Have a nice Day!
pause

:comend
echo Das Programm wird nun beendet!
pause > nul


Soweit klappt alles, außer die Abfrage ( zu finden unter :abfrage)!
Dort soll durch zufall eine der vorher eingegebenen Dateien geöffnet werden und die Antwort (Vokabel dann eine 1 und dann .txt) die richtige Lösung sein.
Wo ich Probleme habe?
Dabei, durch zufall eine der Vokabeln durch zufal als Frage einzugeben und die richtige Antwort zuzuweisen!
Bitte warten ..
Mitglied: bastla
28.01.2009 um 22:17 Uhr
Hallo Chipchamp12!

Der Frage nach dem "!" am Ende Deiner Sätze schließe ich mich an ...
Ansonsten: Da ich nicht weiß, wie der Ablauf konkret aussehen soll, einfach einmal ein Entwurf, mit dem 10 Mal eine Datei (bzw genauer: deren erste Zeile) in die Variable %variable% eingelesen wird, wobeim wie gewünscht, zumindest 6 andere Dateien zwischendurch verwendet werden müssen:
01.
@echo off & setlocal 
02.
set "Ordner=D:\Dein Ordner" 
03.
set "Liste=%temp%\Inhalt.txt" 
04.
set "Zuletzt=§ § § § § § §" 
05.
 
06.
dir /b "%Ordner%\*.txt"|findstr /n "^">"%Liste%" 
07.
for /f "usebackq delims=:" %%i in ("%Liste%") do set /a Anzahl=%%i 
08.
 
09.
set /a Zaehler=0 
10.
 
11.
:Loop 
12.
set /a Nr=%Random%%%%Anzahl%+1 
13.
echo %Nr%__%Zuletzt% 
14.
echo %Zuletzt%|findstr /c:"§%Nr%§">nul && goto :Loop 
15.
for /f "tokens=1* delims=:" %%i in ('findstr /b "%Nr%:" "%Liste%"') do set "Datei=%%j" 
16.
echo "%Datei%" 
17.
set /p variable=<"%Ordner%\%Datei%"  
18.
for /f "tokens=2-6 delims=§" %%a in ("%Zuletzt%") do set "Zuletzt=§%%a§%%b§%%c§%%d§%%e§%Nr%§" 
19.
 
20.
set /a Zaehler+=1 
21.
if %Zaehler% lss 10 goto :Loop
Wenn Dir das Zeichen "§" nicht sympathisch sein sollte, such Dir ein anderes aus (wobei dieses nicht in Deinen Dateinamen vorkommen bzw als Sonderzeichen für Batch oder "findstr" verwendet werden darf).

Die von mir zum Testen verwendeten "echo"-Zeilen 13 und 16 kannst Du natürlich, wenn es soweit klappt, entfernen.

Grüße
bastla

[Edit]
@Chipchamp12: Deinen Entwurf habe ich zu spät gesehen ...

Wenn die Liste der zuletzt verwendeten Dateien zwischen einzelnen Batchläufen gespeichert werden soll, einfach per
echo %Zuletzt%>Zuletzt.txt
zwischenspeichern und mit
set /p "Zuletzt=<Zuletzt.txt"
beim nächsten Mal wieder einlesen.
Soferne sich die Anzahl bzw Reihenfolge der Dateien zwischenzeitlich nicht verändert hat, sollte das einigermaßen passen ...
[/Edit]
Bitte warten ..
Mitglied: Chipchamp12
28.01.2009 um 22:29 Uhr
Bastla,
es soll aber nicht dieselbe Datei mehrmals abgefragt werden, sondern immer eine neue und die bereits abgefragten sollen nicht doppelt abgefragt werden.
Zudem muss man, wenn man die Datei "Beispiel"1.txt als Vokabel hat, als Antwort beispiel angeben!
Die Datei Beispiel1.txt hat als korrekte Antwort Beispiel.txt!
Bitte warten ..
Mitglied: bastla
28.01.2009 um 22:35 Uhr
Hallo Chipchamp12!

Da ich heute ohnehin keine Zeit mehr habe, kannst Du (was mich betrifft) in aller Ruhe ev meinen Entwurf testen (nur, um den Ablauf vielleicht nachvollziehen zu können), Deinen obigen Kommentar nochmals überdenken und dann vielleicht so formulieren, dass einigermaßen klar ist, was Du tatsächlich meinst ...

Grüße
bastla
Bitte warten ..
Mitglied: Chipchamp12
28.01.2009 um 22:38 Uhr
Der Eintrag sollte eigentlich verständlich sein!
Ggf. liegt es an dir.
Probier mal den Batch Code oben aus, dann solltest du verstehen, was ich meine.
Bitte warten ..
Mitglied: 60730
28.01.2009 um 22:58 Uhr
Lieber ChimpChamp,

gib dochmal if /? ein eine DosBox deines Vertrauens ein.

Entdecke dabei evtl. den Schalter /i und kürze deine choose - Schoose.

Es zeugt von sehr viel Hartnäckigkeit oder unwissen, dieses angemahnte Zeichen "!" immer noch an (nun nur noch jedes 3.) Satzende zu setzen.
Aber als Krönung dann auch noch den doppelten (gut gemeinten) anderen Tipp zu ignorieren und Meister Bastla ein "gg. liegt es an dir" vor den Latz zu knallen - sorry aber irgendwann ist das Fass voll.

Ich behaupte mal, von den 3 Schreiberlingen, die sich in diesem Thread verewigt haben, bist du garantiert nicht derjenige, der anderen vorwerfen kann - etwas verständliches nicht zu verstehen.

Roger Over Ende Out
Mit freundlichen Grüßen Ihne ihrn
Dr. Med. Wurst
Bitte warten ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
Windows Server
gelöst Batch-Datei startet in der Aufgabenplanung nicht (12)

Frage von koehlo zum Thema Windows Server ...

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

Frage von Haures zum Thema Windows Server ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (2)

Frage von Matzus87 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 ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...