Site Tools


informatique:windows:batch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:windows:batch [2024/11/04 15:09] yahikoinformatique:windows:batch [2025/01/13 11:02] (current) yahiko
Line 3: Line 3:
  
 Je vais donc compiler ici des petits bouts de codes qui peuvent servir dans pas mal de cas de figures ou tout simplement simplifier la vie. Malheureusement je n'ai plus la source pour la plus part que je n'ai pas trouvé par moi même, mais ce doit être de formidables personnes sur Stackoverflow ou sites dérivés (Super User, Server Fault... ). Je vais donc compiler ici des petits bouts de codes qui peuvent servir dans pas mal de cas de figures ou tout simplement simplifier la vie. Malheureusement je n'ai plus la source pour la plus part que je n'ai pas trouvé par moi même, mais ce doit être de formidables personnes sur Stackoverflow ou sites dérivés (Super User, Server Fault... ).
 +
 +Faudrait que je bascule tout ça sur un git. Un jour.
  
 ===== Code en vrac ===== ===== Code en vrac =====
Line 253: Line 255:
 Le fichier texte contenant, par exemple, des noms d'utilisateurs : Le fichier texte contenant, par exemple, des noms d'utilisateurs :
  
-<file usernames.txt>+<file txt usernames.txt>
 rodrigue rodrigue
 chimène chimène
Line 264: Line 266:
 SET list=usernames.txt SET list=usernames.txt
 SET folder=D:\utilisateurs SET folder=D:\utilisateurs
-FOR /F %%n IN (%list%) DO MKDIR D:\utilisateurs\%%n+FOR /F %%n IN (%list%) DO MKDIR %folder%\%%n
 </code> </code>
 +
 +Un peu plus sophistiqué, on vérifie si le dossier de destination existe. Sinon on le créé : 
 +<code batch>
 +SET list=usernames.txt
 +SET folder=D:\utilisateurs
 +IF EXIST %folder% (
 + GOTO CREATE
 + ) ELSE (
 + MKDIR %folder%
 + GOTO CREATE
 + )
 +
 +:CREATE
 +FOR /F %%n IN (%list%) DO MKDIR %folder%\%%n
 +</code>
 +
 +==== Compresser ====
 +Depuis 2019 Windows inclue libarchive (et curl). On peut compresser directement en ligne de commande sans installer de logiciels supplémentaires.
 +
 +<code batch>
 +tar -a -c -f archive.zip fichier_ou_dossier_a_compresser
 +</code>
 +
 +==== Création d'une arborescence de dossiers depuis un CSV ====
 +
 +<file batch arbo.bat>
 +REM @ECHO OFF
 +CHCP 65001 > NUL
 +
 +SET Folder=D:\DATA
 +SET CSV=dossiers.csv
 +
 +FOR /F "usebackq tokens=1-2 delims=," %%a IN (%CSV%) DO (mkdir "%Folder%\%%a\%%b" && ECHO Création de "%Folder%\%%a\%%b")
 +</file>
 +
 +Structure du CSV : 
 +
 +<file csv dossiers.csv>
 +Dossier1,Sous dossier1
 +Dossier1,Sous dossier2
 +Dossier2,
 +Dossier3,
 +Dossier4,Sous dossier2675
 +</file>
 +
 +Sources : 
 +
 +  * https://superuser.com/questions/1251959/batch-script-to-create-multiple-folders-within-multiple-folders
 +  * https://www.experts-exchange.com/questions/25072173/Batch-Script-to-Read-CSV.html
informatique/windows/batch.1730732987.txt.gz · Last modified: 2024/11/04 15:09 by yahiko