Forum Clubic

Utilisation du gestionnaire tâche windows

Bonjour,
J’aimerai utiliser le gestionnaire de tâche windows pour faire une copie des données de mon PC vers mon NAS une fois par semaine, mais le gestionnaire ne permet que d?exécuter des scriptes.
Pourriez vous me dire quel ligne de commande je dois taper pour copier un répertoire et ses sous répertoire sans avoir à répondre yes à chaque fois qu’il faut écraser un fichier du même nom?
Merci d’avance.

NB: je travail sous windows 10, mais est ce que votre commande fonctionnerai sous XP?

Salut,

Tu peux créer un fichier .bat o tu y ajouteras des commandes DOS.

www.easydos.com…

Selon cette doc, l’option /Y ne t’affichera pas la demande de confirmation pour écraser les fichiers.

c’est bien ce que je veux faire, mais apparemment ma commande (" xcopy /y D:essai*.* D:essai ") ne copie pas les sous répertoires et je ne sais pas comment faire pour qu’elle les prenne en compte…

Pour ça, il semblerait que ce soit plutôt la commande xcopy:
windows.developpez.com…

le /Y est toujours valable pour outrepasser la confirmation, /E ou /S gère les sous répertoires.

Regarde aussi du côté de robocopy => fr.wikipedia.org…

Bonjour,
Désolé du retard de ma réponse mais j’étais en déplacement.
J’ai essayé la commande rococopy (une fois en exécutant le .bat directement depuis un compte administrateur, et l’autre fois en l’exécutant en précisant "exécuter en tant qu’administrateur) mais dans les deux cas la commande a fini en erreur (voir capture d’écran)
[Photo supprimée]

J’ai aussi essayé la commande xcopy, il copie tous les fichiers du répertoire, mais dès qu’il essaye de copier dans des sous répertoire il me dit qu’il n’a pas les droits pour le faire.

A noter (si ça a une importance) que j’essaye de copier depuis mon disque dur vers mon NAS (un lecteur réseau).
Merci encore pour votre aide.

Le problème avec les lecteurs réseaux montés dans ta session c’est qu’ils ne sont pas visibles depuis l’environnement des scripts et ou de la tache planifiée
Donc ce qu’il faut faire c’est monter un lecteur réseau dans le script en lui attribuant une lettre avec la commande “net use” et utiliser cette lettre avec ta commande de copie
Ici tu trouveras des exemples de script permettant d’attribuer une lettre de lecteur qui n?est pas déjà utilisée
stackoverflow.com…
j’aime bien celui ci

@echo off
setlocal

call :freedrive mydriveletter && goto :cont
echo ERROR: No free drive letter found.
goto :exit
:cont
echo Found drive letter: %mydriveletter%

goto :exit

rem Finds a free drive letter.
rem
rem Parameters:
rem     %1 = Output variable name.
rem
rem Example:
rem     call :freedrive mydriveletter && goto :cont
rem     echo ERROR: No free drive letter found.
rem     goto :EOF
rem     :cont
rem     echo Found drive letter: %mydriveletter%
:freedrive
setlocal EnableDelayedExpansion
set exitcode=0
set "output_var=%~1"
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
    set "drive=%%i:"
    rem If 'subst' fails, the drive letter is already in use.
    rem This way we can even detect optical drives that have a drive
    rem letter but no media in them, a case that goes undetected when
    rem using 'if exist'.
    subst !drive! %SystemDrive% >nul
    if !errorlevel! == 0 (
        subst !drive! /d >nul
        goto :freedrive0
    )
)
set exitcode=1
set drive=
:freedrive0
endlocal & set "%output_var%=%drive%" & exit /b %exitcode%

:exit
pause

Edité le 16/02/2016 à 20:59

Malheureusement, je ne suis pas aussi doué que vous et ces scripts sont d’un niveau bien supérieur au mieux (je n’arrive pas à l’adapter à mon besoin) :-(:
Ce qui m’étonne c’est que le lecteur réseau semble reconnu par la commande xcopy car cette commande permet de copier les fichiers se trouvant dans le répertoire source vers le répertoire destination (qui se trouve sur le lecteur réseau ce qui montre bien qu’il n’y a pas de problème de “montage”), mais impossible de copier les sous répertoires! ;-(

Au final, j’ai triché:
Comme une seul commande xcopy me permettait de copier les fichiers mais pas les sous répertoires, dans mon script j’ai fait une commande par sous répertoire et ça marche.