Je souhaite créer un script en batch pour nettoyer un dossier régulièrement, qui sera lancé en tâche récurrente tous les dimanches
Ce script doit être capable de supprimer tous les fichiers et les sous dossiers contenus dans un dossier, mais sans supprimer le dossier "source". Il va ensuite créer un petit fichier .txt pour les explications.
Dans la pratique le script qui suit fonctionne pour la suppression des fichiers et pour la suppression des dossiers MAIS dès qu'un nom de dossier contient un espace, il n'y touche pas.
J'ai fait une dizaine de pages google sur différents forums à tester des solutions toutes faites ou à les modifier, mais rien ne fonctionne... Svp si vous pouvez m'aider ce serait super !!
Merci beaucoup !
Sasha
:: Changer le chemin du dossier à nettoyer. DOSSIER PARENT --- Ne pas mettre le "\" à la fin du chemin
set chemin=C:\Users\user\Documents\source
@echo off
echo =============================================================
echo NETTOYAGE DU DOSSIER
echo =============================================================
echo.
echo.
echo =============================================================
echo NE PAS FERMER CETTE FENETRE SVP
echo =============================================================
@echo off
:: Supprimer les fichiers
del /f /s /q %chemin%\*.*
:: INSERER ICI SUPPRESSION DES ESPACES DANS LES DOSSIERS
timeout 3
:: Supprimer les sous-dossiers
for /f %%f in ('dir /ad /b %chemin%\') do rd /s /q %chemin%\%%f
:: Créer le fichier explication
echo Bonjour, ce dossier est nettoyé automatiquement tous les dimanches et les données contenues sont supprimées. >> %chemin%\"Nettoyage tous les dimanches de ce dossier".txt
echo Pensez donc à sauvegarder vos documents dans vos différents dossier personnels et services. >> %chemin%\"Nettoyage tous les dimanches de ce dossier".txt
echo Merci ! >> %chemin%\"Nettoyage tous les dimanches de ce dossier".txt
echo Le service informatique >> %chemin%\"Nettoyage tous les dimanches de ce dossier".txt
:: Par Sasha
As-tu le problème seulement dans le dossier courant ou dans les sous-dossiers? Sinon, tu peux mettre les noms entre "..." comme j'ai indiqué ici: for /f %%f in ('dir /ad /b %chemin%\') do rd /s /q "%chemin%\%%f"
Le Tout est souvent plus grand que la somme de ses parties.
As-tu le problème seulement dans le dossier courant ou dans les sous-dossiers? Sinon, tu peux mettre les noms entre "..." comme j'ai indiqué ici: for /f %%f in ('dir /ad /b %chemin%\') do rd /s /q "%chemin%\%%f"
Même avec des guillemets cela ne fonctionne pas... Il supprime bien les fichiers, mêmes ceux contenus dans les sous dossiers. En revanche j'ai toujours le soucis de dossiers qui ne se suppriment pas lorsqu'il y a un exemple, et du coup les sous-dossiers des sous-dossiers, meme sans espace, ne se suppriment pas... (mais les fichiers si)
UPDATE :
Je l'ai fait en powershell, tout fonctionne pour 8 fois moins de lignes
Get-ChildITem 'C:\Users\user\Documents\source\' | Remove-Item -Force -Recurse
New-Item -Path 'C:\Users\user\Documents\source\###CE DOSSIER EST EFFACE TOUS LES DIMANCHES###' -ItemType File
- Edité par SashaMtg 5 juillet 2022 à 15:03:28
Script de nettoyage de dossier - BATCH
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.