J'essaie d'utiliser forfiles pour supprimer des fichiers de plus de 7 jours. Les fichiers sont dans un chemin UNC. Vous trouverez ci-dessous le script que j'utilise.
Forfiles -p \\devexpress\C$\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"
Mais je reçois une erreur indiquant que les chemins UNC (\ machine\share) ne sont pas pris en charge.
Il semble que des solutions de contournement soient disponibles, mais ne permettent pas d'obtenir une réponse claire sur Google.
L'erreur que j'obtiens en essayant de reproduire le problème indique que le problème ne vient pas de FORFILES qui ne suporte pas le chemin UNC, mais du fait que CMD ne puisse pas démarrer avec un chemin UNC comme répertoire par défaut. Dans le cas où cela est également votre problème, il existe trois approches pour le résoudre.
vous pouvez affecter le chemin UNC à une lettre de disque, via Net Use
Net Use V: \\devexpress\C$
Forfiles -p V:\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"
Vous pouvez contourner CMD
et utiliser directement un utilitaire exécutable ERASEFILE directement dans l’option -C de la FORFILES
Vous pouvez contourner FORFILES
et utiliser la commande FOR
avec une logique de vérification de date. Voir ma réponse à cette question de débordement de pile Comment puis-je vérifier la création d'un horodatage d'un fichier dans un script batch Windows?
La solution améliorée à la première réponse de l’AP est la suivante:
PushD "\\devexpress\C$\FULL\" &&(
forfiles -s -m *.* -d -7 -c "cmd /c del /q @path"
) & PopD
La commande PushD mappe automatiquement le chemin UNC à la lettre de lecteur libre, il s’agit donc d’une approche portable . Trouvé dans http://www.petri.co.il/forums/showthread.php?t=24241 .
J'ai eu ceci au travail:
PushD "\\DS\Tajana\Arhiva\Arhive po danima" &&("forfiles.exe" /s /m "*.*" /d -7 /c "cmd /c del @path") & PopD
bien que je reçoive un message à propos de l'erreur dans la fenêtre de commande «ne supporte pas le chemin UNC», mais les fichiers de plus de 7 jours sont toujours supprimés