Batch dos supprimer fichier taille inferieur
numayos
-
V.Y.Z -
V.Y.Z -
Bonjour,
je souhaiterai faire un .bat pour supprimer tous les fichiers inferieur a 100ko pour un dossier précis.
j'ai déja trouver une piste pour récuperer la taille mais je n'arrive pas a lister les fichiers
auriez vous une piste?
voici un bout de code qui ne fait pas ce que je veux mais qui permet de contoler la taille.
@echo off
set fichier="C:\Documents and Settings\Administrateur\Bureau\Programation batch\image_tst\*.*"
for %%a in (%fichier%) do set taille=%%~za
if %taille% LSS 100000 (
echo trop petit. >> tst.txt
echo %taille% >> tst.txt
) else (
echo correct. >> tst.txt
echo %taille% >> tst.txt
)
merci d'avance
je souhaiterai faire un .bat pour supprimer tous les fichiers inferieur a 100ko pour un dossier précis.
j'ai déja trouver une piste pour récuperer la taille mais je n'arrive pas a lister les fichiers
auriez vous une piste?
voici un bout de code qui ne fait pas ce que je veux mais qui permet de contoler la taille.
@echo off
set fichier="C:\Documents and Settings\Administrateur\Bureau\Programation batch\image_tst\*.*"
for %%a in (%fichier%) do set taille=%%~za
if %taille% LSS 100000 (
echo trop petit. >> tst.txt
echo %taille% >> tst.txt
) else (
echo correct. >> tst.txt
echo %taille% >> tst.txt
)
merci d'avance
A voir également:
- Batch dos supprimer fichier taille inferieur
- Comment réduire la taille d'un fichier - Guide
- Supprimer rond bleu whatsapp - Guide
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier impossible à supprimer - Guide
3 réponses
Tu peux toujours essayer ceci:
@echo off
set fichier="C:\Documents and Settings\Administrateur\Bureau\Programation batch\image_tst\*.*"
for %%a in (%fichier%) do call :OKDOK "%%a"
goto :EOF
:OKDOK
set taille=%~z1
echo %1 %taille%
if %taille% LSS 100000 (
echo fichier %1 trop petit. taile=%taille% >> tst.txt
) else (
echo fichier %1 correct. taille=%taille% >> tst.txt
REM
REM del /F /Q %1
REM
echo fichier %1 effacé >> tst.txt
)
:EOF
Il suffit d'enlever le "REM " devant "del /F /Q %1" pour réellement effacer les fichiers plus grand que 100000.
En fait le script de 4 lignes du debut, appelle pour chaque fichier trouvé, une sous-routine qui s'appelle OKDOK avec comme paramêtre le nom du fichier (%%a entre "" car le nom de fichier peut contenir des espaces).
Dans la sous-routine le paramêtre se retrouve dans %1, comme lorsque l'on passe un paramêtre à un batch.
@echo off
set fichier="C:\Documents and Settings\Administrateur\Bureau\Programation batch\image_tst\*.*"
for %%a in (%fichier%) do call :OKDOK "%%a"
goto :EOF
:OKDOK
set taille=%~z1
echo %1 %taille%
if %taille% LSS 100000 (
echo fichier %1 trop petit. taile=%taille% >> tst.txt
) else (
echo fichier %1 correct. taille=%taille% >> tst.txt
REM
REM del /F /Q %1
REM
echo fichier %1 effacé >> tst.txt
)
:EOF
Il suffit d'enlever le "REM " devant "del /F /Q %1" pour réellement effacer les fichiers plus grand que 100000.
En fait le script de 4 lignes du debut, appelle pour chaque fichier trouvé, une sous-routine qui s'appelle OKDOK avec comme paramêtre le nom du fichier (%%a entre "" car le nom de fichier peut contenir des espaces).
Dans la sous-routine le paramêtre se retrouve dans %1, comme lorsque l'on passe un paramêtre à un batch.
d'avoir tous les fichiers de tous les sous dossiers?
merci