Problème avec le planificateur [Résolu]

Le coin des administrateurs et des développeurs. Astuces techniques, ...

Problème avec le planificateur [Résolu]

Messagepar cyrille » Dim 22 Mai 2016 20:51

Bonjour,

Je me suis créé un batch que j'exécute à une heure précise en utilisant le planificateur de tâches (PT) de W7.
Il s'agit de l'exécution de la commande xcopy entre 2 dossiers écrite dans un batch.
J'ai ajouté la commande de redirection pour que les messages de résultats soient stockés dans un fichier
Exemple : xcopy c:\dossier1 c:\dossier2 > /E /Y /D > rapport.txt
Dans ce fichier, il faudrait que j'ai :
"fichier tartenpion.txt"
" 1 fichier copié"
qui s'affiche habituellement à l'écran après l'exécution d'une commande xcopy.

Problème : Si je me place dans le dossier où se trouve le batch, et si j'exécute le batch à partir de l'Invite de Commandes (IC), les fichiers sont copiés et le rapport généré.
Si j'essaye avec le PT, j'obtiens "Accès refusé" dans l' IC qui s'affiche automatiquement.
Par contre, si je supprime l'option de redirection dans le batch, la sauvegarde se fait.

Pour être plus précis, voici la commande litigieuse :
xcopy "C:\Program Files (x86)\Collectorz.com\Movie Collector\*.*" "D:\DOSSIERS\DOSSIERS par DEFAULT ET SAUV\SAUV\COLLECTORZ\DONNES 2015" /E /Y /D > rapport.txt

Si quelqu'un comprend quelque chose ...
Merci d'avance pour l'aide.

Cyrille E.
cyrille
 
Messages: 21
Inscription: Ven 3 Mai 2013 11:03

Re: Problème avec le planficateur

Messagepar Alain Quarré » Dim 22 Mai 2016 21:25

La différence est le contexte dans lequel est exécuté le script.

Quand tu l'exécutes manuellement, son contexte est le dossier où le script se trouve.
Quand tu l'exécutes par tâches planifiée, son contexte est dans le dossier C:\Windows\System32
et sans les droits admin, l’accès en écriture de ce dossier est refusé.

Plusieurs solutions pour corriger cela.
  • Déplacer le contexte dans la tâche planifiée.
    dans le champ 'Commencer dans (facultatif)', renseigne le dossier ou tu veux le rapport.
  • Déplace le contexte dans le script lui-même;
    Mets la ligne CD /D %~dp0 au début du script.
  • Redirige la sortie du rapport en donnant le chemin absolu et non simplement le nom du fichier.
    ex: xcopy c:\dossier1 c:\dossier2 /E /Y /D>C:\Users\Truc\Desktop\script\rapport.txt

Perso, j'utilise la méthode 2 (CD /D %~dp0)

NB: évite les espace avant et après >
NB2: xcopy est obsolète, préfère Robocopy. (avec comme avertissement que mal utilisé, Robocopy peut être très destructeur)
Déplacer les dossiers utilisateur topic4073.html topic5883.html
Déplacer le dossier Public topic4396.html
PAS DE RÉPONSE TECHNIQUE PAR MP
Alain Quarré
 
Messages: 964
Inscription: Mer 20 Jan 2010 23:41

Re: Problème avec le planficateur

Messagepar cyrille » Mar 24 Mai 2016 19:56

J'ai réussis avec la première solution.

Pour CD /D %~dp0, il faut que je cherche ce que cela signifie.
Quelque sites peut-être pour éclairer mes lanternes peut-être ceux déjà indiqués (je n'ai pas eu encore le temps de lire)

Quant à la troisième solution : pigé

Merci pour votre aide.
cyrille
 
Messages: 21
Inscription: Ven 3 Mai 2013 11:03

Re: Problème avec le planificateur [Résolu]

Messagepar PatriciaG » Mar 24 Mai 2016 22:53

Bonjour,

cyrille a écrit:Pour CD /D %~dp0, il faut que je cherche ce que cela signifie.


Voici la réponse à ta question.

il suffit d'utiliser la variable %~dp0 qui renvoie le chemin du dossier où se trouve le batch.

Source : http://www.commentcamarche.net/forum/af ... in-courant
J'ai un fichier cmd qui contient la ligne suivante : cd /d %~dp0
Censé (vous dîtes si je me trompe) initialiser le répertoire courant avec le répertoire parent du fichier cmd lancé.

Source : http://www.commentcamarche.net/forum/af ... irconflexe

Les pages suivantes t'apporteront des réponses complémentaires :
http://stackoverflow.com/questions/1830 ... in-windows
http://saladtomatonion.com/blog/2013/01 ... cript-bat/
http://ss64.com/nt/syntax-args.html - en particulier http://ss64.com/nt/cd.html

@+
Avatar de l’utilisateur
PatriciaG
 
Messages: 3001
Inscription: Jeu 11 Nov 2010 17:11
Localisation: Port-sur-Saône / Haute-Saône / France

Re: Problème avec le planificateur [Résolu]

Messagepar Alain Quarré » Mer 25 Mai 2016 00:22

cyrille a écrit:Pour CD /D %~dp0, il faut que je cherche ce que cela signifie.
LA variable %0 contient le chemin absolu et le nom du script
Tu peux extraire de cette variable différentes valeurs, comme le disque (d) et le chemin (p) (le p de path, chemin en anglais)

dons, si ton script et son chemin sont:
C:\Truc\Machin\Dossier\Script.cmd
%~d0 = C:
%~p0 = \Truc\Machin\Dossier\
et tu peux associer d et p, ce qui nous donne:
%~dp0 = C:\Truc\Machin\Dossier\
on utilise alors la commande CD pour déplacer le Current Directory vers le dossier où le script se trouve.
l'option /D permet à CD de changer aussi de lecteur si besoin est.

Il y a d'autre possibilité d'extraction d'info de la variable %0
%~n0 = Script
%~x0 = .cmd
%~nx0 = Script.cmd

Si tu as bien suivi, tu en déduiras que
%~dpnx0 = %0
Logique, non?

Plus d'info sur cela avec la commande:
for /? dans une fenêtre de commande.

++

Alain
Déplacer les dossiers utilisateur topic4073.html topic5883.html
Déplacer le dossier Public topic4396.html
PAS DE RÉPONSE TECHNIQUE PAR MP
Alain Quarré
 
Messages: 964
Inscription: Mer 20 Jan 2010 23:41

Re: Problème avec le planificateur [Résolu]

Messagepar PatriciaG » Mer 25 Mai 2016 00:36

Bonjour,

Alain Quarré a écrit:Si tu as bien suivi, tu en déduiras que
%~dpnx0 = %0
Logique, non?

Merci pour ces explications très claires assorties d'une conclusion limpide. :)

Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure,
L'expression la suit, ou moins nette, ou plus pure.
Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Source : De L'Art poétique - Nicolas Boileau

@+
Avatar de l’utilisateur
PatriciaG
 
Messages: 3001
Inscription: Jeu 11 Nov 2010 17:11
Localisation: Port-sur-Saône / Haute-Saône / France


Retourner vers Administration / programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

Livre photo