复制子文件夹内文件的命令行命令

Command line command to copy a file inside the subfolders

我想使用命令行将一个文件同时复制到一系列文件夹中。 比如我想把E:\HTM.nsf复制到:

E:\Note\A1\note\data1\
E:\Note\A2\note\data1\
E:\Note\A3\note\data1\
E:\Note\A4\note\data1\

我使用 XCopy:

E:\>xcopy e:\HTM*.*nsf "\notes\A1\note\data1\"

它的作品,但我想同时复制HTM.nsf给所有用户(A1到A4)。

尝试创建一个像这样的批处理脚本 copyfiles.cmd

@echo off
setlocal enabledelayedexpansion
if "%1"=="/restart" goto restart
for /d %%a in (
  "E:\Note\A*"
) do (call %0 /restart %%~fa\note\data1)
goto end

:restart
shift
set targetPath="%1"
echo processing %targetPath% ...
copy e:\HTM*.*nsf %targetPath% /B/Y
exit /b

:end
exit

备注:

  • 路径需要拆分,不能在路径中间使用通配符*
  • 通过在循环中使用E:\Note\A*路径,找到A1、A2、A3等,路径的其余部分被追加,即表达式%%~fa\note\data1用于完成路径(其中 %%~fa 是找到的路径之一的占位符 - 例如 E:\Note\A1
  • 此脚本自行启动,复制命令出现在标签 :restart 和 returns 到 for 循环中,使用 exit /b