-
Forcer un move
Bonjour,
J'ai un batch qui récupère des fichiers, et les déplace.
Voila le contexte :
Rep_in : Repertoire de reception des fichiers
Rep_out : Repertoire de destination des fichiers.
Le problème est que les fichiers que je déplace (via un move) ont le même nom que les fichiers présents dans Rep_out. Le move les écrase donc et le nouveau fichier est disponible.
Le problème, est lorsque le déplacement se fait tandis qu'un utilisateur a laissé ouvert le fichier sur son poste. Le fichier est donc vérouillé, et le move est KO.
Y'a t-il un moyen de forcer le move, même si le fichier est vérouillé ?
(move /? ne m'indique que 2 commutateurs, Y et -Y qui permettent de demander ou non la confirmation du move)
Merci de vos réponses !
-
Non, tu ne peux pas le forcer, pour la simple et bonne raison que le fichier est ouvert par un autre processus sur lequel tu n'as AUCUN droit d'accès (normal, ce n'est pas "toi", il n'y a aucune "bonne" raison pour que tu ailles farfouiller ses handles).
La seule solution, relativement lourde, serait d'effectuer une simple COPIE dans un premier temps, puis de tenter d'effacer la source. Si l'effacement échoue, alors il faudrait lancer une tâche de surveillance surveillant le fichier source et l'effaçant dès que possible... Il te faudra à priori un exécutable spécifique qui utilisera les notifications d'évènements pour savoir quand le fichier est fermé.
Bref, pas trivial non plus, et à mon avis impossible en BATCH "pur".
-
Ok, merci bien de ta réponse, ça confirme ce que je pensais.