Last active
March 26, 2023 17:19
-
-
Save Bludwarf/d5b6ffc79080417809a70b961cbd14b2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Prend chaque fichier commençant par 8 chiffres et le déplace dans le sous-dossier correspondant. | |
# | |
# Exemple : | |
# | |
# Le fichier : | |
# | |
# 20201229_100822 - Théo danse en cuisinant.mp4 | |
# | |
# Sera placé dans l'arborscence suivante : | |
# | |
# └───2020 | |
# └───20201229 | |
# 20201229_100822 - Théo danse en cuisinant.mp4 | |
# Peut être automatisé en ajoutant un batch avec le code suivant dans le dossier `shell:sendto` : | |
# | |
# bash "D:\\Scripts\\Creer sous repertoires.sh" %* | |
# | |
# Source : https://superuser.com/a/1070913 | |
# ls : `-p` pour ajouter un / devant chaque répertoire | |
# grep : `-v /` pour supprimer les répertoires (commencent par '/') | |
# sed : pour extraire les 8 premiers caractères (si ce sont bien des chiffres) de chaque fichier | |
# `-r` : pour utiliser les ExpReg sans échappements compliqués | |
# `-n /p` : pour n'afficher que les lignes filtrées | |
for i in * | |
do | |
# On ne prend que les fichiers | |
if [ -f "$i" ]; then | |
echo "Traitement du fichier $i..." | |
date="" | |
# Et uniquement ceux commençant par 8 chiffres... | |
if [[ $i =~ ^([0-9]{8}) ]]; then | |
date=${BASH_REMATCH[1]} | |
# ... ou les images WhatsApp | |
elif [[ $i =~ ^IMG-([0-9]{8}) ]]; then | |
date=${BASH_REMATCH[1]} | |
# Sinon | |
else | |
echo " Fichier ignoré." | |
fi | |
# Répertoires cibles | |
if [[ -n $date ]]; then | |
dir1=`echo $date | cut -c 1-4 -` | |
dir2=`echo $date | cut -c 1-8 -` | |
echo " Fichier déplacé dans le répertoire $dir1/$dir2." | |
mkdir -p $dir1 | |
mkdir -p $dir1/$dir2 | |
mv "$i" $dir1/$dir2 | |
fi | |
fi | |
done | |
echo "Terminé" | |
# On fait une pause pour avoir le temps de lire le rapport | |
read |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
REM %~dp1 ajoute un "\" … la fin ce qui pose problŠme … exiftool | |
REM On ajoute donc "." pour avoir "\.", ce qui convient … exiftool | |
REM Source : https://stackoverflow.com/questions/3160058/how-to-get-the-path-of-a-batch-script-without-the-trailing-backslash-in-a-single?rq=1 | |
set srcdir="%~dp1." | |
echo D‚marrage du traitement du dossier %srcdir% | |
REM Pour éviter l'erreur "CMD ne prend pas les chemins UNC comme r‚pertoires en cours." | |
REM Source : https://stackoverflow.com/a/34182234/1655155 | |
@pushd %~dp1 | |
REM Tri des fichiers renommés (idem v1) | |
REM TODO : cd renvoie cette erreur sur le blucloud : | |
REM '\\blucloud\Public\A trier\BluBook\Backup\Bludwarf\Pictures\Mes Photos\test\.' | |
REM | |
REM piste : https://stackoverflow.com/questions/9013941/how-to-run-batch-file-from-network-share-without-unc-path-are-not-supported-me | |
cd /D %srcdir% | |
"C:\\Program Files\\Git\\git-bash.exe" "D:\\Scripts\\Creer sous repertoires.sh" %* | |
@popd | |
REM pause |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment