web-dev-qa-db-fra.com

Utilisation d'un lot pour copier d'un lecteur réseau vers un lecteur C: ou D:

Je rencontre des problèmes pour exécuter un fichier de commandes qui copiera des fichiers d'un lecteur réseau mappé sur un lecteur local.

Voici le code de lot que j'utilise (c'est juste dans un dossier de bas niveau pour le moment, car je ne veux pas exécuter de commandes dans un environnement de production tant que tout n'est pas parfait).

echo off
cls

echo Would you like to do a backup?

pause

copy "\\My_Servers_IP\Shared Drive\FolderName\*" C:TEST_BACKUP_FOLDER

pause

Et j'ai aussi essayé:

echo off
cls

echo Would you like to do a backup?
pause

copy "\\My_Servers_Name\Shared Drive\FolderName\*" C:TEST_BACKUP_FOLDER

pause

Aucune des commandes ci-dessus ne copie les fichiers dans C: TEST_BACKUP_FOLDER lorsque je le demande, mais si j'utilise la même syntaxe exacte mais effectue une demande de copie à partir d'un lecteur local, la syntaxe ne pose aucun problème et passe directement à la dossier ci-dessus sans problèmes.

La partie la plus étrange est que la sortie de cmd montre même que les fichiers que je veux copier sont même reconnus dans la ligne de commande et à la fin, il indique «1 fichiers copiés» mais rien ne se copie dans ce dossier. Je sais donc que la destination de la demande de copie est correcte car elle reconnaît même les fichiers présents dans le dossier et les noms s'affichent. Et comme je l’ai dit, la destination en C: est également correcte, car lorsque j’utilise cette adresse sur le PC local, ils les copient dans ce dossier à chaque fois. C'est évidemment quelque chose à voir avec le lecteur réseau. Au début, j’imaginais que c’était peut-être un problème d’autorisation, mais le dossier que j’essaie actuellement est un lecteur mappé partagé auquel toute personne de la société peut accéder et à laquelle il a des privilèges r/w. Pourquoi de tels problèmes sur un lecteur partagé public?

Pourriez-vous proposer d'autres suggestions? 

3
JacobSM1984

Vous copiez tous les fichiers dans un seul fichier appelé TEST_BACKUP_FOLDER

essaye ça:

md TEST_BACKUP_FOLDER
copy "\\My_Servers_IP\Shared Drive\FolderName\*" TEST_BACKUP_FOLDER
7
foxidrive

Il suffit de faire le changement suivant

echo off
cls

echo Would you like to do a backup?

pause

copy "\\My_Servers_IP\Shared Drive\FolderName\*" C:\TEST_BACKUP_FOLDER

pause
2
Hasan

Cela peut être dû à un contrôle de sécurité. Ce fil pourrait vous aider.

Il y a deux suggestions: une avec pushd et une avec un changement de registre. Je suggère d'utiliser le premier ...

1
Markus

Plus important encore, vous devez monter le lecteur 

Net Use z: \\yourserver\sharename

Bien entendu, vous devez vous assurer que le compte sous lequel le fichier de commandes est exécuté est autorisé à accéder au partage. Si vous le faites en utilisant une tâche planifiée, vous pouvez choisir le compte en sélectionnant la tâche, puis:

  • clic droit Propriétés
  • cliquez sur l'onglet Général
  • changer de compte sous

"Lors de l'exécution de la tâche, utilisez le compte d'utilisateur suivant:" C'est sous Windows 7, il peut être légèrement différent selon les versions de Windows.

Puis lancez votre script batch avec les modifications suivantes

copy "z:\FolderName" "C:\TEST_BACKUP_FOLDER"
0
manish kumar