Suppression en batch de fichiers absent d'une liste
Résolu
Angelus_h
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Angelus_h Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Angelus_h Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Suppression en batch de fichiers absent d'une liste
- Liste déroulante excel - Guide
- Forcer suppression fichier - Guide
- Fichier batch - Guide
- Liste déroulante en cascade - Guide
- Renommer des fichiers en masse - Guide
3 réponses
Bonjour,
Peut-être comme ça :
Peut-être comme ça :
pushd %origine% for %%A in (*.CTS *.DST) do findstr "%%~nA" listing.lst >nul || del /f "%%~fA" popd pushd %disque% for %%A in (*.CTS *.DST) do findstr "%%~nA" listing.lst >nul || del /f "%%~fA" popd
Merci pour cette réponse qui est presque parfaite.
Si j'ajoute les 0 dans le listing, ça marche.
Mais le listing n'est pas généré avec les 0
Les fichiers sont toujours sur 8 caractères (les vides sont remplacés par des 0)
Exemple :
00000005.CTS
00000112.DST
Si j'ajoute les 0 dans le listing, ça marche.
Mais le listing n'est pas généré avec les 0
Les fichiers sont toujours sur 8 caractères (les vides sont remplacés par des 0)
Exemple :
00000005.CTS
00000112.DST
Ok dans ce cas tu peux faire comme ceci :
@echo off setlocal enabledelayedexpansion set "origine=D:\ORIGINE" set "disque=Z:\Sauvegarde" rem copie du listing le plus récent entre les deux disques xcopy "%origine%\listing.lst" "%disque%\" /D /Q /Y xcopy "%disque%\listing.lst" "%origine%\" /D /Q /Y rem suppression des fichiers *.DST et *.CTS n'appartenant pas à la liste sur les deux disques call :suppression "%origine%" "%TMP%\listing_bis.txt" call :suppression "%disque%" "%TMP%\listing_bis.txt" rem actualisation de l'ensemble des fichiers sur les plus récents xcopy "%origine%\*.*" "%disque%\" /D /Q /Y xcopy "%disque%\*.*" "%origine%\" /D /Q /Y exit :suppression cd /d %1 & type nul >%2 for /f "tokens=1 delims= " %%E in (listing.lst) do ( set "index=00000000%%~nE" echo.!index:~-8!>>%2 ) for %%A in (*.CTS *.DST) do find "%%~nA" %2 >nul || del /f "%%~fA" goto :eof