Question Copie de fichiers sur la ligne de commande Windows 7 - Le système ne trouve pas le fichier spécifié


Je sais que c'est une question stupide, j'ai fait des fichiers batch depuis des années et je n'ai pas eu autant de problèmes ... J'essaie de faire un fichier de commandes pour copier des fichiers dans un dossier et pour la vie de moi, je peux t le faire fonctionner.

cd C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\
copy FifthGenerationMage.bsa C:\Users\Mark Collins\Desktop\DATA
copy FifthGenerationMage.bsl C:\Users\Mark Collins\Desktop\DATA
copy FifthGenerationMage.ckm C:\Users\Mark Collins\Desktop\DATA
copy FifthGenerationMage.esp C:\Users\Mark Collins\Desktop\DATA
pause

Cela devrait fonctionner, non? Droits d'auteur? Quand je le fais comme ça, la syntaxe est incorrecte.

Quand je fais ceci:

copy C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\FifthGenerationMage.bsa C:\Users\Mark Collins\Desktop\DATA
copy C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\FifthGenerationMage.bsl C:\Users\Mark Collins\Desktop\DATA
copy C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\FifthGenerationMage.ckm C:\Users\Mark Collins\Desktop\DATA
copy C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\FifthGenerationMage.esp C:\Users\Mark Collins\Desktop\DATA

Il dit "Le système ne peut pas trouver le fichier spécifié."

Les deux devraient fonctionner. Je ne comprends pas.


3
2017-11-24 19:52


origine


Où sont les guillemets puisque vos chemins contiennent des espaces .... Soit vous utilisez l’aiguille courte pour ces dossiers. Vos deux commandes sont incorrectes pour cette raison. - Ramhound
Il n'y a pas de DOS dans Windows depuis Windows 2000. Windows XP et les systèmes Windows ultérieurs ont une console de texte, également appelée ligne de commande ou CMD. - Kamil
Ramhound bien sûr. C'était ça. Tu gères. Kamil, je sais, je sais ... ça ressemble à DOS, donc je l'appelle DOS, même si ce n'est pas un système d'exploitation ... Bien que ce soit une distinction très réelle, je n'ai jamais compris pourquoi c'était si important - Mark Collins
@ MarkCollins - Soyez spécifique. Si vous connaissez la différence, utilisez le terme correct. Les détails sont importants.  Ils sont également différents entre une question de qualité et quelque chose qui ne l’est pas. - Ramhound
Il est à noter que le cd commande ne prend qu'un seul paramètre (et une option possible), donc la totalité de la chaîne passée est considérée comme paramètre (y compris les blancs), ce qui explique pourquoi les guillemets sont facultatifs. Ils aurait être nécessaire si le nom du répertoire a un blanc de début ou de fin. - AFH


Réponses:


Si votre chemin contient des espaces, vous devez inclure tout le chemin avec ", comme ça:

copy "C:\Program Files (x86)\...\FifthGenerationMage.bsa" "C:\Users\...\DATA"

Je suggère également d'utiliser une variable pour stocker le chemin cible et simplifier le script:

set skyrimdata="C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data"
set target="C:\Users\Mark Collins\Desktop\DATA"

copy "%skyrimdata%\FifthGenerationMage.bsa" %target%
copy "%skyrimdata%\FifthGenerationMage.bsl" %target%
copy "%skyrimdata%\FifthGenerationMage.ckm" %target%
copy "%skyrimdata%\FifthGenerationMage.esp" %target%

Pourquoi ça ne marche pas?

Regardez:

|     | 1         | 2    | 3               | 4            |
 copy   C:\Folder   with   spaces\file.txt   E:\Some folder

Le système le lit comme:

1 - paramètre 1 (pour la commande de copie - source 1)

2 - paramètre 2 (pour la commande de copie - source 2)

3 - paramètre 3 (pour la commande de copie - source 3)

4 - paramètre 4 (pour la commande de copie - cible)

Il n'y a pas C:\Folder, with, spaces\file.txt fichiers ou répertoires - et vous obtenez une erreur:

Le système ne peut pas trouver le fichier spécifié.


8
2017-11-24 19:56