Bonjour a tous,
Je suis débutant en script batch, donc désolé si certaines questions sont vraiment sans intérêt. J'ai parcouru le forum pour essayer de trouver une réponse mais en vain.
Voila j'ai un fichier text listant les fichiers que j'aimerais archiver
type:
Test_File_to_Archive\Dir1\File11.txt
Test_File_to_Archive\Dir1\Dir11\File111.txt
Test_File_to_Archive\Dir2\File21
Test_File_to_Archive\Dir2\File22
voila la commande que je lance
j'arrive à parcourir le fichier et à récuperer chaque ligne
J'arrive à récuperer le nom du fichier, son extension
mais je n'arrive pas à extraire le chemin du fichier dans lequel j'aimerais remplacer Test_File_to_Archive en File_Archive
for /f "delims=" %%i in ('type %1') do If exist %%i call zipFile.bat %%i
et mon fichier zipFile.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| ::recherche le chemin du fichier
Set DIR_NAME=%~dp1
::recherche le nom du fichier
Set FILE_NAME_WITHOUT_EXTENTION=%~n1
::ne marche pas
::FOR /F "delims='%FILE_NAME_WITHOUT_PATH%'" %%i in ('echo %1') do Set DIR_NAME=%%i
::recherche l'extention
Set FILE_NAME_EXTENTION=%~x1
::supprime le zip si existe deja
If exist %DIR_NAME%%FILE_NAME_WITHOUT_EXTENTION%.zip rm %DIR_NAME%/%FILE_NAME_WITHOUT_EXTENTION%.zip
mkdir "%DIR_NAME%"
::creer le zip
7z a -tzip %DIR_NAME%%FILE_NAME_WITHOUT_PATH%.zip %FILE_NAME_WITHOUT_EXTENTION%* |
en sortie
File Name est ok
Extention est ok
DIR_NAME est le chemin du fichier a partir de c: et je n'arrive pas a modifier le dossier source pour mettre mon dir destination.
Comment doit je faire
Merci
Partager