J'écris un programme général de sauvegarde de fichiers. Il recherche sur le lecteur les fichiers correspondant à un ensemble de types, puis les écrit dans un dossier du bureau. Je l'ai écrit en utilisant xcopy
Windows XP, mais après avoir appris que l' utilisation de ce logiciel xcopy
était déconseillée dans robocopy
Vista et les versions plus récentes, tout en maintenant la compatibilité, j'ai décidé de passer à la version non obsolète copy
.
C'est là que les problèmes commencent. J'essaie de réparer la routine de copie. Je pensais avoir tout réglé, mais cela ne copie rien. Ma sortie est zéro fichier copié pour chaque itération.
Code original utilisant xcopy
:
for /r %%a in (*.bmp *.dds *.gif *.jpg *.jpeg *.png *.psd *.pspimage *.tga *.thm *.tif *.tiff) do (
echo f | xcopy "%%a" "%HOMEDRIVE%%HOMEPATH%\Desktop\LDR\Images\Bitmap\%%~nxa" /q /y /g /c
)
Code révisé (cassé) en utilisant copy
:
for /r %%a in (*.bmp *.dds *.gif *.jpg *.jpeg *.png *.psd *.pspimage *.tga *.thm *.tif *.tiff) do (
copy "%%a" "%HOMEDRIVE%%HOMEPATH%\Desktop\LDR\Images\Bitmap\%%~nxa" /d /y /z
)
Sortie:
The system cannot find the path specified.
0 files copied.
Je sais qu'il semble que tout le monde utilise l'un xcopy
ou l' autre, robocopy
mais est-ce que quelqu'un peut aider copy
?
Remarque: J'utilise Batch pour le maintenir très léger et accessible en ligne de commande.
D:\>(copy "D:\Program Files\Winamp\Plugins\avs\whacko6-07.bmp" "C:\Documents and Settings\,,,,\Desktop\LDR\Images\Bitmap\whacko6-07.bmp" /d /y /z ) The system cannot find the path specified. 0 file(s) copied.
Un échantillon sur un lecteur d'essai D. Les résultats étaient tous les mêmes.
copy
ne crée pas de chemins de fichiers, il n'a donc pas été copié dans un chemin qui xcopy
aurait été créé pour moi. Je devrais pré-créer mes répertoires.
@for
et icido @(
qui devrait lister toutes les commandes et vous pouvez voir le moindre défaut. Je remarque également qu'il vous manque des guillemets doubles dans votre commande de copie. Vous les aviez dans votre commande xcopy