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.
la source
@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 xcopyD:\>(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 quixcopy
aurait été créé pour moi. Je devrais pré-créer mes répertoires.Réponses:
Solution enfin trouvée!
Apparemment,
xcopy
crée des répertoires s'ils ne sont pas spécifiés. Je n'avais pas déjà\LDR\Images\Bitmap
défini le chemin de fichier.copy
Je ne sais pas comment créer des dossiers, je vais donc devoir les générer à l'avance, ce qui est un peu gênant carxcopy
cela ne créerait pas de dossiers s'il n'y avait pas de fichiers à mettre dans ceux-ci. Aveccopy
je fais des dossiers en supposant qu'ils seront remplis.Merci pour l'aide. FOR THE RECORD:
copy
ne crée pas de chemins de fichiers inexistants.xcopy
Est-ce que!MISE À JOUR: Ma solution finale. Fonctionne comme un champion.
la source