J'ai une structure de dossiers, où chaque dossier a un fichier Excel que je veux copier vers une nouvelle destination.Batch: copie de la source du formulaire de fichier vers la destination - Impossible de trouver l'erreur spécifiée par le fichier
Exemple:
Chemin source: C: \ Data \ 0. MyFolder \ 1. Modèles \ 00. Dossier 0 \ File.xlsb
Chemin de destination: C: \ Data \ 0. MyFolder \ NewFolder \ 00. Dossier 0 \ Fichier.xlsb
Le "00. Dossier 0" est un nom stocké dans un tableau. J'utilise donc une boucle for pour créer un nouveau répertoire basé sur les noms du tableau et je crée la nouvelle structure similaire.
Je reçois le message "Le système ne trouve pas le fichier spécifié." lorsque vous essayez de copier un fichier d'un dossier vers un autre dossier.
Lorsque j'imprime le chemin du fichier, il semble correct. Qu'est-ce que je fais mal?
Voici le code:
@echo off
@break off
@title Generate Subfolders
@color 0a
@cls
setlocal EnableDelayedExpansion
SET "batch_path=%~dp0"
SET "first_folder=01. Folder1"
SET "second_folder=02. Folder2"
SET "third_folder=03. Folder3"
:: Create the new Working Data folder
SET /p new_folder_name= Enter Directory Name:
SET "full_path=%batch_path%%new_folder_name%"
ECHO Working...
IF NOT EXIST ("%full_path%") (
MKDIR %new_folder_name%
IF "!errorlevel!" EQU "0" (
ECHO Folder created successfully.
) ELSE (
ECHO Error while creating folder.
)
) ELSE (
ECHO Folder already exists.
)
SET "folders_list="%first_folder%" "%second_folder%" "%third_folder%""
SET "templates_folder=C:\Data\0. MyFolder\1. Templates"
FOR %%f in (%folders_list%) DO (
SET "updated_full_path=%full_path%\%%f"
SET "template_full_path_file=!templates_folder!\%%~f\file.xlsb"
:: Displays the path file correctly
ECHO !template_full_path_file!
MKDIR "!updated_full_path!"
:: However I cannot copy the file to new destination
COPY template_full_path_file updated_full_path
PAUSE
)
PAUSE
EXIT
Traitement inconséquent des guillemets. '%% f' contient des chaînes quoted alreday et il devrait être' SET 'updated_full_path =% full_path% \ %% ~ f "' et comme @SAhmad a déjà souligné que '!' est manquant mais comme les chemins contiennent des espaces, ils doivent être cité aussi: "COPY"! template_full_path_file! " "! updated_full_path!" ' – LotPings
@LotPings Merci beaucoup! :) –