【发布时间】:2021-08-12 15:30:54
【问题描述】:
在文件夹 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 Studio\2017\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
【问题讨论】:
-
如何使用与第一行相同的命令在第二行运行 .bat 文件!
call fastddsgen.bat … -
请阅读我在How to call a batch file that is one level up from the current directory? 上的回答,它解释了
fastddsgen.bat和call fastddsgen.bat之间的区别。四个xcopy行应替换为%SystemRoot%\System32\robocopy.exe "C:\A" "C:\B" "afile.h" "afile.cpp" "bfile.h" "bfile.cpp" /XO /R:3 /W:2 /NDL /NFL /NJH /NJS。在command prompt 中运行robocopy /?以获取有关命令ROBOCOPY 选项的帮助。 -
BTW:最好使用完整的限定文件名而不是文件名来引用批处理文件
fastddsgen.bat,并期望执行copybatch.bat时的当前目录是包含@987654332的目录@。这种期望很容易出错。如果批处理文件fastddsgen.bat与copybatch.bat在同一目录下,则可以使用call "%~dp0fastddsgen.bat"。%~dp0(驱动器+参数 0 的路径)扩展为当前处理的批处理文件的完整路径,始终以反斜杠结尾。
标签: windows batch-file xcopy