需要编写批处理脚本以将单个 EXCEL 文件复制到 EXCEL 文件当前所在的所有子文件夹中

Need to write a batch script to copy a single EXCEL file into all sub-folders that the EXCEL file is currently in

我有一个 Excel 模板,需要将其复制到数百个文件夹中。我想创建一个批处理脚本来为我执行此操作。

关键是: 我需要它根据批处理文件所在的任何文件夹工作。我需要一个可以来自任何目录的 运行 脚本批处理文件位于 中,但未指定特定目录或目标 。该脚本将检测到 excel 文件,然后将其复制到该目录中的每个子文件夹中。

到目前为止我发现的所有内容都需要您指定目录和目标。我想要一些可以移动到任何计算机并根据下面显示的设置工作的东西:

这可能吗?任何帮助将非常感激!谢谢。

使用 PUSHD 将当前工作目录设为 .bat 文件脚本所在的目录。使用 POPD 返回上一个目录。

@ECHO OFF
PUSHD %~dp0

SET "TEMPLATE_FILE=Property Inspection Form TEMPLATE.xlsm"

IF NOT EXIST "%TEMPLATE_FILE%" (ECHO ERROR: No template file found in "%CD%" & GOTO TheEnd)

FOR /F "delims=" %%d IN ('DIR /B /A:D') DO (
    COPY /Y "%TEMPLATE_FILE%" "%%~d"
)

:TheEnd
POPD
EXIT /B

如果您想将所有 .xlsm 文件复制到子目录,您可以这样做。在 COPY 命令后确实应该进行错误检查以查看它是否有效。

@ECHO OFF
PUSHD %~dp0

FOR /F "delims=" %%d IN ('DIR /B /A:D') DO (
    COPY /Y "*.xlsm" "%%~d"
)

:TheEnd
POPD
EXIT /B