Bonsoir les Développeurs !
Je voudrais savoir si on pouvait lister dans un fichier .txt le contenu d'une archive rar ou zip gravée sur DVD. Merci de vouloir m'aider.![]()
Bonsoir les Développeurs !
Je voudrais savoir si on pouvait lister dans un fichier .txt le contenu d'une archive rar ou zip gravée sur DVD. Merci de vouloir m'aider.![]()
En se basant sur cette réponse get a list of files with winrar command line
Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @echo off set "LogRAR=LogRar.txt" if exist %LogRAR% Del %LogRAR% set "strProgramFiles=%ProgramFiles%" if exist "%ProgramFiles(x86)%\WinRAR\UnRar.exe" set "Unrar=%ProgramFiles(x86)%\WinRAR\UnRar.exe" if exist "%ProgramFiles%\WinRAR\UnRar.exe" set "Unrar=%ProgramFiles%\WinRAR\UnRar.exe" for %%a in (*.rar) do "%unrar%" l %%a >> %LogRAR% Start "" %LogRAR% pause & exit
Bonsoir hackoofr et merci pour le Code BAT.
J'ai rencontré deux problèmes:
1. Si le nom du fichier .rar contient des espaces (ex. Dossier animaux domestiques.rar), le batch ne génère aucune liste.
2. Dans le listing, les caractères accentués et ç s'affichent bizarrement. Y a-t-il un moyen de les afficher normalement ?
MERCI.
Salut,
Pour les espace place tes variables comme "%%a", "%LogRAR%" entre guillemets.
Pour l'encodage de caractère sous Notepad++ ->![]()
Bonjour devilsnake88 et merci pour ton aide.
J'ai ajouté les guillemets et maintenant le batch gère les fichiers .rar avec noms espacés comme Dossier animaux domestiques.rar
1. La liste obtenue dans le fichier LogRAR.txt affiche des caractères bizarres au lieu des caractères accentués et ç. Que faut-il faire dans ce cas ?
2. Je voudrais avoir Dossier animaux domestiques.txt au lieu de LogRAR.txt. Que faut-il ajouter ou modifier dans le batch ? Merci de pouvoir m'aider.![]()
Pour ce qui est du nom du fichier de logs c'est facile:
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @echo off & cls setlocal enabledelayedexpansion set "strProgramFiles=%ProgramFiles%" if exist "%ProgramFiles(x86)%\WinRAR\UnRar.exe" set "Unrar=%ProgramFiles(x86)%\WinRAR\UnRar.exe" if exist "%ProgramFiles%\WinRAR\UnRar.exe" set "Unrar=%ProgramFiles%\WinRAR\UnRar.exe" for %%a in (*.rar) do ( set "LogRAR=%%~na.txt" if exist "!LogRAR!" Del "!LogRAR!" "%unrar%" l "%%a">>"!LogRAR!" ) Start "" "!LogRAR!" pause & exit
Pour l'encodage de caractères j'ai essayé avec CHCP mais rien de concluant.
Si quelqu'un a une idée elle est la bienvenue sinon converti manuellement le fichier sous Notepad++ comme dans mon screenshot précédent.
Tester ce :
Code BAT : 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 @echo off Mode con cols=65 lines=3 cls & color 9E Title Comment lister une archive RAR dans un fichier texte set "Folder_Log=%userprofile%\Desktop\RAR_Log" If Not exist "%Folder_Log%" MD "%Folder_Log%" set "All_RAR_Files_Log=%Folder_Log%\All_RAR_Files_Log.txt" if exist "%ProgramFiles(x86)%\WinRAR\UnRar.exe" set "Unrar=%ProgramFiles(x86)%\WinRAR\UnRar.exe" if exist "%ProgramFiles%\WinRAR\UnRar.exe" set "Unrar=%ProgramFiles%\WinRAR\UnRar.exe" Setlocal enabledelayedexpansion for %%f in (*.rar) do ( SET /a "Count+=1" set "TmpLogRAR=%Tmp%\%%~nf.txt" set "LogRAR[!Count!]="%Folder_Log%\%%~nf.txt" if exist "!TmpLogRAR!" Del "!TmpLogRAR!" Call :ShowMsg "%%f" "%unrar%" l "%%f" >>"!TmpLogRAR!" Cmd /u /c Type "!TmpLogRAR!" > "%Folder_Log%\%%~nf.txt" if exist "!TmpLogRAR!" Del "!TmpLogRAR!" ) If Exist "%All_RAR_Files_Log%" Del "%All_RAR_Files_Log%" For /L %%i in (1,1,%Count%) do ( Type "!LogRAR[%%i]!" >> "%All_RAR_Files_Log%" ) Start "" "%All_RAR_Files_Log%" Exit /b ::************************************************************ :ShowMsg <File> cls echo( echo Traitement de %1 exit /b ::************************************************************
Partager