Robocopy ne trouve pas un dossier dont le nom contient un accent, ou son journal affiche des caractères illisibles ? Il faut distinguer le chemin réellement reçu par Robocopy de son affichage. Ajouter systématiquement chcp 1252 au début du script ne règle pas tous les cas.
⚡ TL;DR — L’ESSENTIEL EN 30 SECONDES
- ✅ Vérifie séparément le chemin source, le fichier de script et le journal.
- ✅ Mets les chemins entre guillemets et commence par une simulation avec /L.
- ✅ /UNILOG produit un journal Unicode ; il ne corrige pas un chemin déjà mal interprété.
- ⚠️ La page de codes de la console doit correspondre au contexte, pas être imposée partout.
Mis à jour le 25 octobre 2026 à partir des sources officielles citées.
Repérer le niveau qui pose problème
Microsoft décrit chcp (source consultée le 25 octobre 2026) comme une commande qui affiche ou modifie la page de codes active de la console. Elle ne convertit pas à elle seule tous les fichiers de script, les journaux et les noms de fichiers du système. Note d’abord si tu lances une commande directe, un fichier .cmd ou un script .ps1.
| Symptôme | Premier contrôle | À ne pas confondre |
|---|---|---|
| Le dossier est introuvable | Comparer le chemin exact et ses caractères | Erreur de chemin et simple affichage |
| Le script échoue mais la saisie directe fonctionne | Vérifier son encodage et son interpréteur | Encodage du fichier et page de codes |
| La copie fonctionne, le journal est illisible | Vérifier le format du journal et son lecteur | Affichage et contenu réellement copié |
| Le résultat change selon le poste | Comparer versions et paramètres | Un réglage local et une solution portable |
Pourquoi chcp 1252 ne suffit pas toujours
La page 1252 correspond à un jeu de caractères Windows d’Europe occidentale ; elle n’est pas « le code page original » de toutes les consoles françaises. Microsoft distingue les identifiants de pages de codes (source consultée le 25 octobre 2026) et recommande Unicode pour les échanges cohérents. La page 850 et UTF-8 sont encore d’autres contextes.
Dans une invite de commandes, commence par relever la configuration, sans la changer :
chcp
Si tu entretiens un ancien fichier batch enregistré en Windows-1252, un réglage cohérent avec cet encodage peut faire partie du dépannage. Il faut toutefois vérifier le fichier, le shell et les programmes appelés. Ne présente pas chcp 1252 ou chcp 65001 comme une commande qui répare automatiquement tous les chemins accentués.
Un exemple PowerShell avec simulation
Pour un nouveau parcours, voici un exemple avec des variables séparées et des chemins explicites. Adapte les deux dossiers à une zone de test. Vérifie auparavant que la destination est bien celle que tu souhaites utiliser.
$sourceCopie = 'C:\Test\Été'
$destinationCopie = 'D:\Test\Réception'
$journalCopie = Join-Path $env:TEMP 'robocopy-verification.log'
Test-Path -LiteralPath $sourceCopie
& robocopy $sourceCopie $destinationCopie /E /L /R:1 /W:1 "/UNILOG:$journalCopie"
La référence Microsoft Robocopy (source consultée le 25 octobre 2026) documente /L pour lister sans copier, /E pour inclure les sous-dossiers vides, les limites de nouvelle tentative et /UNILOG pour le journal Unicode. La simulation permet d’examiner les éléments concernés avant le transfert.
Lis le journal et vérifie notamment la source, la destination et les noms accentués. Si le résultat correspond au test attendu, relance la même commande sans /L pour effectuer la copie. Cet exemple n’utilise pas les options de suppression ou de miroir.
Enregistrer correctement le script PowerShell
La documentation Microsoft des encodages PowerShell (source consultée le 25 octobre 2026) explique une différence utile : Windows PowerShell peut mal interpréter un script UTF-8 sans BOM contenant des caractères non ASCII, alors que PowerShell moderne emploie d’autres valeurs par défaut. Pour un .ps1 destiné à Windows PowerShell 5.1 avec des accents, vérifie l’enregistrement UTF-8 avec BOM dans ton éditeur.
Ce conseil concerne le fichier .ps1. Ne l’applique pas mécaniquement à un fichier batch ou à tous les fichiers de données manipulés par le script. Note l’encodage choisi et garde une copie du script précédent avant de modifier un traitement récurrent.
Contrôler le journal sans changer les noms de dossiers
Ouvre le fichier produit par /UNILOG avec un éditeur qui reconnaît son encodage. Si la copie est correcte mais que le lecteur du journal décode mal le texte, renommer les dossiers pour supprimer leurs accents traiterait le mauvais problème.
À l’inverse, un journal Unicode ne peut pas réparer une chaîne incorrecte transmise dès le lancement. Compare donc le chemin attendu, la variable affichée dans la session et le contenu du fichier script. Réduis le test à un dossier et un fichier avant de reprendre une arborescence entière.
Avant de réutiliser la commande en production
- Vérifie les chemins et les noms contenant accents ou espaces.
- Relis le résultat de la simulation.
- Effectue un essai de copie limité et ouvre les fichiers obtenus.
- Conserve le journal ainsi que les paramètres utilisés.
- N’ajoute pas une option de miroir ou de suppression pour résoudre un problème d’encodage.
Pour un transfert plus large, consulte notre guide de migration avec Robocopy. Pour le shell, vois l’installation de PowerShell et l’exécution d’un script. Les autres tutoriels sont dans le guide Windows, IT et Sécurité.
Questions fréquentes
Non. La commande agit sur la page de codes active de la console. Il faut aussi vérifier le fichier de script, le shell et le journal.
Robocopy propose /L pour lister les opérations sans copier. Relis les chemins et les fichiers concernés avant de retirer cette option.
Non. /UNILOG change le format du journal. Une chaîne déjà incorrecte au lancement doit être corrigée à sa source.
Commence par isoler le problème. Si les chemins et la copie sont corrects, il peut seulement rester un mauvais décodage du journal.