IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

InitSreen

Gestion de la copie asynchrone en ligne de commande

Noter ce billet
par , 19/03/2015 à 15h47 (693 Affichages)
La copie des fichiers ce fait de manière asynchrone. C'est à dire que suite à une demande de copie d'un fichier, le contrôle revient au programme demandeur avant que l'opération n'est réellement était effectué. Cela peut dans certains cas poser problème, en particulier lorsque les opérations suivantes portent sur le même fichier. Exemple:

Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
@echo off
copy "%cd%\test.txt" "%cd%\foo\test.txt"
del /q "%cd%\test.txt"
pause

Ici la solution est simple puisque ce code reproduit l'opération effectué par la commande "move". Il faudra donc remplacer les commandes "copy" et "del" par "move". Dans d'autres cas, la solution est plus alambiqué du fait des opérations voulues.

Par exemple lors d'un déploiement d'une image Windows hors connexion, l'utilisation de la commande "copy" peut provoquer des erreurs lors du démontage de l'image.

Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
@echo off
dism /Mount-Image /ImageFile:"%cd%\myimage.wim" /index:1 /MountDir:"%cd%\offline"
copy "%cd%\test.exe" "%cd%\offline\test.exe"
dism /Unmount-Image /MountDir:"%cd%\offline" /commit
pause

Ce code produira toujours une erreur du fait que le script continuera a s'exécuter alors que le fichier "%cd%\test.exe" n'a pas encore finit d'être copié. La solution est d'utilisé le paramètre "/v" dans la commande "copy", celui-ci force la vérification du fichier copié. Cette opération étant effectué par la commande "copy", le contrôle ne reviendra pas au script tant que la copie n'est pas effectué.

Voilà, bon script à tous

Envoyer le billet « Gestion de la copie asynchrone en ligne de commande » dans le blog Viadeo Envoyer le billet « Gestion de la copie asynchrone en ligne de commande » dans le blog Twitter Envoyer le billet « Gestion de la copie asynchrone en ligne de commande » dans le blog Google Envoyer le billet « Gestion de la copie asynchrone en ligne de commande » dans le blog Facebook Envoyer le billet « Gestion de la copie asynchrone en ligne de commande » dans le blog Digg Envoyer le billet « Gestion de la copie asynchrone en ligne de commande » dans le blog Delicious Envoyer le billet « Gestion de la copie asynchrone en ligne de commande » dans le blog MySpace Envoyer le billet « Gestion de la copie asynchrone en ligne de commande » dans le blog Yahoo

Catégories
Sans catégorie

Commentaires