Bonjour à tous,
Je voulais en parcourant un fichier d'enregistrements de ma bibliothèque musicale appelé Musique.m3u créer une liste aléatoire du contenu de ce fichier, car à l'origine, le contenu du fichier m3u est classé en suivant l'arborescence du dossier Ma Musique.
J'ai trouvé sur le forum, un code permettant une sortie aléatoire d'après le contenu d'un fichier. J'ai modifié le code pour l'adapter à mes besoins, mais vous le devinez, j'ai un soucis.
En effet, à un moment "T" la génération de ma liste aléatoire Musique2.txt bloque et ne prend en compte qu'une partie du fichier Musique.m3u.
La partie du traitement aléatoire se trouve dans la balise :mainchoix0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 :mainchoix cls mode con cols=60 lines=5 color 0E echo #EXTM3U >Musique2.txt :mainchoix0 @SET %%A= @SET line= @SET %%I= SETLOCAL ENABLEEXTENSIONS REM Compter le nombre de lignes avant tout. SET nblines=0 FOR /F "delims=" %%I IN ('TYPE Musique.m3u') DO SET /a nblines+=1 REM Récupérer une ligne au hasard. SET /a line=%RANDOM% %% %nblines% REM Parcours du fichier d'origine, en sautant "line" lignes. FOR /F "skip=%line% delims=" %%I IN ('TYPE Musique.m3u') DO ( REM Sortie de la ligne. CLS ECHO. ECHO Alea jacta est: Carpe diem ECHO. ECHO %%I>> Musique2.txt REM Je place le endlocal ici, sinon %nblineb% ne s'affiche pas: REM Résultat à l'écran: Ajout de la piste: / 995 ENDLOCAL SET nblineb=0 FOR /F "delims=" %%A IN ('TYPE Musique2.txt') DO SET /a nblineb+=1 ECHO Ajout de la piste: %nblineb% / %nblines% IF %nblines%==%nblineb% GOTO break GOTO mainchoix0 ) :break if exist Musique.m3u del Musique.m3u ping 127.0.0.1 -n 1 >nul ren Musique2.txt Musique.m3u ping 127.0.0.1 -n 1 >nul start Musique.m3u if existe Lecture.txt del Lecture.txt exit
Également dans cette même partie, deux compteurs, afin de pouvoir afficher à l'écran les informations sur le traitement.
Je ne comprends comment corriger mon problème. Je vous remercie de l'aide que vous pourrez m'apporter pour solutionner ce problème.
Partager