如何在批处理文件中将选定的文件从一个文件夹复制到另一个文件夹?

How to copy selected files from one folder to another in Batch file?

在文件夹 C:\A 中我有 afile.h afile.cpp bfile.h bfile.cpp 和其他一些 .h 和 .cpp 文件 (windows 10)

我只想复制 afile.h afile.cpp bfile.h bfile.cpp 到 C:\B 文件夹,如果文件夹 A 中的文件比文件夹 B 中的文件新,则替换它们

我在下面尝试但没有成功,bat 运行 但没有任何反应

我的copybatch.bat文件

call "C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64 
fastddsgen.bat -replace -example CMake aac.idl 
xcopy /y /d C:\A\afile.h C:\B
xcopy /y /d C:\A\afile.cpp C:\B
xcopy /y /d C:\A\bfile.h C:\B
xcopy /y /d C:\A\bfile.cpp C:\B

您的 xcopy 命令中的 /d 是什么意思?您可能认为您指定的目的地是一个目录,但实际上这是用于日期相关的事情。

这里真正的问题可能是您的计算机无法识别 C:\B 是目录还是文件,从而导致了问题。

因此,我建议您遵循 my answer from this other question,并使用以下命令:

xcopy /y C:\A\afile.h C:\B\
xcopy /y C:\A\afile.cpp C:\B\
xcopy /y C:\A\bfile.h C:\B\
xcopy /y C:\A\bfile.cpp C:\B\

祝你好运

我也使用 call 作为第二个命令

call "C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64 
call fastddsgen.bat -replace -example CMake aac.idl
xcopy /y /d C:\A\afile.h C:\B
xcopy /y /d C:\A\afile.cpp C:\B
xcopy /y /d C:\A\bfile.h C:\B
xcopy /y /d C:\A\bfile.cpp C:\B

使用CALL的原因 --> 当不使用CALL时,当前批处理文件停止,调用的批处理文件开始执行。