Auteur de questions
Planificateur de tâches

Discussion générale
-
Bonjour
J'ai écrit un batch de test pour préparer une mise à jour sur une machine distante par robocopy.
Ce test consiste dans une instruction de création de fichier.L'environnement utilisé est le suivant :
une machine windows serveur 2012 R2 intégré à un domaine
une machine indépendante (workgroup) windows 7
Une connexion réseau (C$) définie sur le serveur 2012 vers le disque C de la machine distante.
le compte utilisé est le compte d'administrateur du serveur 2012 R2 exécutant le planificateur de tâches.le batch de 10 lignes est le suivant :
@echo off
set RepSrce="D:\81 - Usinage\999 - Test Transfert Auto"
set RepDest="Y:\WNC\home\d_xnc\p_p\prog\41 - BIESSE"
set NomFichier=%date:~8,2%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%
set NomFichier=%NomFichier: =0%
set NomFich="%RepDest:~1,-1%\%NomFichier%test.txt"
echo "Ligne 8 - TestEcrituresurRoverA-v3.bat - Ecriture sur Machine distante - %time%">%NomFich%
set NomFich="%RepSrce:~1,-1%\%NomFichier%test.txt"
echo "Ligne 10 - TestEcrituresurRoverA-v3.bat - Ecriture sur Machine locale - %time%">%NomFich%
exitQuand le fichier batch de test est lancé manuellement, j'obtiens le comportement attendu à savoir :
Ecriture du fichier yyddmmHHmmtest.txt sur le serveur 2012
Ecriture du fichier yyddmmHHmmtest.txt sur la machine windows 7Quand le planificateur de tâches lance ce fichier, la tâche s'exécute sans erreur mais partiellement :
Le fichier est correctement écrit sur le serveur 2012
Mais rien n'est écrit sur la machine windows7NB autre difficulté set NomFichier=%NomFichier: =0% semble inopérant le premier fichier écrit est celui de 10h00 Quelle piste suivre?
- Type modifié Teodora Sharkova mercredi 1 février 2017 21:00
Toutes les réponses
-
Bonjour,
Une (petite) remarque : à moins que vous ayez des contraintes particulières, vous auriez avantage à écrire votre script en Windows PowerShell. Il est tout à fait possible de lancer un robocopy en PowerShell. L'environnement Windows PowerShell est beaucoup plus souple que les scripts cmd.
Une piste éventuelle,
Est-ce que la zone "Commencer dans (facultatif)" de l'action est bien renseignée avec le nom du chemin où se trouve le script à lancer.
Pour le calcul de date et le problème rencontré, je vous suggère la modification suivante à adapter à vos besoins :
set _DTE=%date:~6,4%-%date:~3,2%-%date:~0,2%
if "%time:~0,1%"==" " (set _TIM=0%time:~1,1%h%time:~3,2%m) else (set _TIM=%time:~0,2%h%time:~3,2%m)Pour info, en PowerShell, l'équivalent de votre commande de calcul de date est :
$DTE = (Get-Date).ToString("yyyyMMddHHmmss")
Claude Couderc Consultant IIS, SharePoint, Exchange http://coudr.com
- Modifié Claude Couderc dimanche 22 janvier 2017 09:19
-
Bonsoir
Pour reprendre dans l'ordre du plus simple au plus complexe
Le calcul de date est résolu, merci de votre réponse
Concernant "commencer dans" il était vide, je n'ai pas noté de modification en le renseignant.
Côté power shell, j'ai lu beaucoup, pour pouvoir écrire mon premier script.
Mais pour l'instant échec :
J'ai écrit un script principal, qui fait appel à deux fonctions.
Le script fonctionne correctement lorsque je le lance depuis l'interface PowerShell ISE ou lorque je le lance depuis l'explorateur de fichier, mais ...
Je retombe sur la même difficulté que celle rencontrée lors de ma première version Batch. Le planificateur de tâche, lance la première tâche, semble ne pas retrouver le programme appelant et refuse toute autre nouvelle exécution
"Demande de lancement ignorée, l’instance est déjà en cours d’exécution"