BATCH : Chercher, extraire puis exploité un fichier précis dans un dossier rar

Résolu/Fermé
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023 - 1 août 2021 à 21:56
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023 - 12 août 2021 à 12:52
Bonjour à tous :-D
Comment allez-vous ?
Je vais pas tourner autour du pot, voici mon problème :
J'ai un fichier bat qui quand je le lance, cherche puis exploite un fichier de n'importe quel nature dans un dossier compresser rar
La partie exploitation du fichier est en théorie faite, il me manque juste la partie "recherche" auquel je n'ai aucune idée de comment faire.
J'ai eu juste cette petite vision qui malheureusement ne fonctionne pas :snif:

Avant de vous demander de m'aider il faut que je vous explique l'arborescence à l'intérieur du rar pour comprendre ma démarche :
Le dossier rar est construit comme ceci :

RACINE
ㅤ|- DOSSIER_1
ㅤㅤ|- A
ㅤㅤㅤ|- Accueil.jpg
ㅤㅤㅤ|- Aujourd'hui.html
ㅤㅤㅤ|- Ancêtre.txtㅤㅤㅤㅤ(Chaque fichier est classé par ordre alphabétique et de n'importe nature quel sois)
ㅤㅤㅤ|- ...
ㅤㅤ|- B
ㅤㅤ|- C
ㅤㅤ|- ...
ㅤ|- DOSSIER_2
ㅤ|- ...ㅤㅤㅤㅤ(Seul le Dossier_1 nous intéresse)



CLS
@ECHO OFF

:TEST
ECHO Nom du fichier ?

SET\P "variable_1=>"
// Je déclare une variable pour le nom du fichier \\

SET "variable_2=%variable_1%"
// Je copie ma 1er variable dans une 2ème variable \\

SET "variable_3=%variable_2:~0,1%"
// Je garde la première lettre de ma 2ème variable dans une 3ème variable \\

IF EXIST "%CD%\Mon_Dossier_Compresser_RAR.rar\DOSSIER_1\%variable_3%\%variable_1%.*" GOTO COPIE
// Je vérifie l'existence du fichier \\

GOTO TEST

:COPIE
COPY "%CD%\Mon_Dossier_Compresser_RAR.rar\%variable_3%\%variable_1%.*" "C:\Dossier_de_Destination\"
// Je fait une copie de mon fichier depuis le rar \\
...


J'ai essayé d'être le plus clair possible et je débute un peu dans le batch, j'essaie de me faciliter la vie au quotidien :)

Je vous remercie d'avance de vos retour et de vos solutions
A voir également:

3 réponses

brucine Messages postés 14491 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 8 mai 2024 1 856
1 août 2021 à 22:22
Bonsoir,

C'est tout de même très flou, ton affaire, on ne sait par exemple pas à quoi correspond la variable %CD% ni ce que cette copie dont nous n'avons que les titres a à voir avec une recherche dans des dossiers compressés.

Le hic, c'est que ton batch, par définition à la ligne de commandes, ne va jamais rien chercher dans un dossier compressé.

Il existe plusieurs utilitaires permettant de faire ça, dont beaucoup avec une syntaxe pas très intuitive si tu débutes; je faisais ça à une époque avec Power Archiver 6, encore un freeware à l'époque, et qui intègre un utilitaire en ligne de commande (POWERARC) qui permet de compresser ou décompresser un fichier compressé.
https://www.ljbf.fr/php/portailfr/index.php/component/remository/Les-ptites-archives/Internet--and--windows/PowerArchiver-6.0--[powarc60f.exe]/?Itemid=123

Comme déjà à l'époque j'étais plein de vice, j'en rajoutais une couche avec un utilitaire qui permettait de faire toutes les opérations de date de la création en batch sur des fichiers et y compris d'archives, et en ce qui nous intéresse donc de nommer ces archives avec un schéma automatisé utilisant un nom de variable, voir FDATE, ici:
http://reimagery.com/fsfd/batch1.htm
0
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023
Modifié le 2 août 2021 à 11:31
Merci pour ta réponse Brucine,
La variable %CD% renvoie juste au dossier courant.
La chose est pourtant très simple mais je ne sais pas très bien m'expliquer.

J'ai un dossier avec mon rar et mon batch.
Le batch va chercher un fichier auquel je lui renseigne le nom dans la première variable.
Je garde la première lettre de ce nom dans une autre variable, si je fais une copie c'est parce que
ça : SET "variable_2=%variable_1:~0,1%" ne fonctionne pas (il me créer un fichier nommé "~0" ¯\_(ツ)_/¯)
Je vérifie l'existence du fichier choisi au cas ou je me suis gourré dans le nom et s'il existe, il fait une copie vers un dossier prédéfini sinon il redemande le nom du fichier.

Et c'est la tout mon problème, je n'ai aucune idée de comment faire sans utiliser de logiciel tiers.
Si je ne peux pas utiliser de logiciel tiers c'est parce que ce sera un batch utiliser sur plusieurs PC différents.
Et je ne peux pas me permettre de dire au autres d'aller télécharger tel ou tel logiciel.

Je ne sais pas si je suis encore super clair mais je suis contraint au fonctionnalité de base de CMD.
Si c'est impossible, bah je serais juste contraint de décompresser le dossier.
0
brucine Messages postés 14491 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 8 mai 2024 1 856 > BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023
2 août 2021 à 13:18
Bonjour,

Pour la variable %CD%, je n'y étais pas, mais elle n'a pas d'intérêt puisqu'elle désigne le répertoire courant, rien n'atteste que tes dossiers ou ceux de tes contacts s'y trouvent.
Si l'on veut lancer une commande à partir du dossier où l'on se trouve, l'usage est plus volontiers d'utiliser la variable %~dp0 et il y aura alors lieu d'écrire en tête de fichier:
C:\> CD /d "%~dp0"

Sur le reste tu l'as dans le dos, parce que si maintenant Windows 10 lit zip nativement, ce n'est pas le cas de rar.
Il n'y a donc pas moyen à ma connaissance d'y lire des fichiers individuels sans décompresser (puis recompresser ensuite), ce que l'on peut parfaitement faire avec des utilitaires à la ligne de commande, mais qui ne seront pas forcément les mêmes chez toi et chez tes contacts, et qu'il faut de toute façon préalablement installer.
C'est d'ailleurs cette technique qui est utilisée dans certains logiciels pour décompresser des archives, mais elle suppose que l'exécutable embarquera un utilitaire adapté et de mémoire, les antiques utilitaires MsDos (Arj et Consorts) ne décompressaient pas sauf Rar le format rar qui est un format propriétaire.
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 2 août 2021 à 13:33
Bonjour,

Je t'ai créé un script sur mesure, téléchargeable ici :
https://wetransfer.com/downloads/ed171244214c948809cc5bf7a953022220210802113313/7f434e

N'oublie pas de renommer le fichier .txt en .bat

Par défaut, le fichier extrait sera copié dans le dossier "Téléchargements"
Si tu veux modifier ce dossier, tu peux modifier la variable "destination" au début du script.


0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
3 août 2021 à 14:24
Même pas un petit merci ??? Je suis déçu.
0
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023 > barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
3 août 2021 à 15:19
Merci beaucoup barnabe ????????????
Je ne peux tester ton script dans l'immédiat car j'ai un petit soucis de PC...
Mais dès que je peux, je te redis
Encore merci
0
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023 > BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023
3 août 2021 à 15:23
Mdrr les "?" Qui se tapent l'incruste...
N'en tiens pas compte, on dirait que je te manque de respect totale du coup 。゚ヽ(゚´Д`)ノ゚。
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023
3 août 2021 à 15:24
De rien ;-)

A très bientôt alors.
0
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023 > barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024
3 août 2021 à 15:29
Oui merci encore
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
12 août 2021 à 09:31
Concernant mon script (trop long pour être posté sur le forum), je remet un lien si quelqu'un en a besoin car l'ancien a expiré : https://pastebin.com/1tCtZ8eL
0