Batch file 批处理:将文件从源复制到目标-找不到指定的文件错误

Batch file 批处理:将文件从源复制到目标-找不到指定的文件错误,batch-file,for-loop,copy,Batch File,For Loop,Copy,我有一个文件夹结构,每个文件夹都有一个excel文件,我想复制到新的目标 例如: 源路径:C:\Data\0。我的文件夹\1。模板\00。文件夹0\File.xlsb 目标路径:C:\Data\0。MyFolder\NewFolder\00。文件夹0\File.xlsb 那辆车是00。文件夹0是存储在数组中的名称。因此,我使用for循环根据数组中的名称创建一个新目录,并创建新的类似结构 我收到消息系统找不到指定的文件。尝试将一个文件从一个文件夹复制到另一个文件夹时 当我打印文件的路径时,它似乎是

我有一个文件夹结构,每个文件夹都有一个excel文件,我想复制到新的目标

例如:

源路径:C:\Data\0。我的文件夹\1。模板\00。文件夹0\File.xlsb

目标路径:C:\Data\0。MyFolder\NewFolder\00。文件夹0\File.xlsb

那辆车是00。文件夹0是存储在数组中的名称。因此,我使用for循环根据数组中的名称创建一个新目录,并创建新的类似结构

我收到消息系统找不到指定的文件。尝试将一个文件从一个文件夹复制到另一个文件夹时

当我打印文件的路径时,它似乎是正确的。我做错了什么

代码如下:

@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

您没有在“复制”命令中解析路径


收到!模板\完整\路径\文件!更新了完整路径

报价处理不合理。%%f包含alreday引号的字符串,应该设置为updated\u full\u path=%full\u path%\%%~f,正如@SAhmad已经指出的那样!缺少,但由于路径包含空格,因此也必须引用它们:复制!模板\完整\路径\文件!更新了完整路径@非常感谢你非常感谢你!我还添加了@LotPings建议的双引号。捕捉得好!更新了答案。