Suppression d'un nombre de fichier donnée - Shell/Batch - Programmation
Marsh Posté le 06-02-2008 à 14:56:42
Peut être utiliser le dir /x
/X This displays the short names generated for non-8dot3 file
names. The format is that of /N with the short name inserted
before the long name. If no short name is present, blanks are
displayed in its place.
Marsh Posté le 06-02-2008 à 15:54:24
T'es sous quel OS ?
et "dir /x ne marche pas " ça veut dire que l'option /x marche pas
chez toi ou que tu n'as pas le résultat espéré ?
Marsh Posté le 06-02-2008 à 16:33:33
Je suis sous windows xp
En fait l'option "dir /x" ne m'obtient pas le résultat attendu effectivement !
Marsh Posté le 07-02-2008 à 07:58:38
Pour moi 2 solutions :
Soit tu passes en paramètres le nom de fichier
par ex NEWTEX~1.TXT au lieu de New Text Document.txt
=>
07/02/2008 07:54 0 NEWTEX~1.TXT New Text Document.txt
Soit tu essaies de mettre le fichier en paramètre encadré par des ""
=>
C:\>cd temp
C:\temp>dir new*
Volume in drive C is SYSTEM
Directory of C:\temp
06/02/2008 14:53 0 New Text Document.txt
1 File(s) 0 bytes
0 Dir(s) 7,850,057,728 bytes free
C:\temp>del "New text Document.txt"
C:\temp>dir new*
Volume in drive C is SYSTEM
Directory of C:\temp
File Not Found
Bon je laisse maintenant a place aux spécialistes ;-)
Marsh Posté le 07-02-2008 à 13:14:20
Je suis bien d'accord avec toi vttman2 pour les guillemets, l'ennuie c'est que dans ma boucle cela ne change rien !
for /f "skip=%nombre%" %%a in ('dir /o-d /b /N /X "%repertoire%\*.*"') do del /Q /F /A "%repertoire%\%%a" >>d:\fic.log
Marsh Posté le 29-02-2008 à 15:24:39
Personne n'aurait une petite idée sur la question svp ?
Lorsque je passe par exemple la commande suivante :
for /f "skip=2" %%a in ('dir /o-d /b /N /X "D:\test\*.*"') do del /Q /F /A "D:\test\%%a"
avec la commande dir je récupère bien les 2 fichiers les plus récents du répertoire, cependant si le troisième fichier contient des espaces, il n'est pas supprimé !
Le problème je pense vient de la variable %%a qui prend en compte que le début du nom du fichier !
Marsh Posté le 29-02-2008 à 16:20:46
Pour ceux que ça intéresse la solution est la suivante :
for /f "skip=2 tokens=6* delims=/ " %%a in ('dir /A-D /O-D D:\test\^|find "/"') do del /Q /F /A "D:\test\%%a %%b"
Marsh Posté le 06-02-2008 à 14:14:33
Bonjour, je voudrais supprimer dans un dossier un certain nombre de fichier passé en paramètre !
Voilà comment je procède
set repertoire=%1
set nombre=%2
for /f "skip=%nombre%" %%a in ('dir /o-d /b %repertoire%\*.*') do del /Q /F /A "%repertoire%\%%a"
Cependant je n'arrive pas à supprimer les fichiers qui contiennent des espaces !
Quelqu'un aurait il une idée svp ?