.bat通过递归函数拷贝文件夹
时间: 2023-11-09 15:04:42 浏览: 81
可以使用以下代码实现在 Windows 平台下通过递归函数拷贝文件夹:
```
@echo off
set "source_folder=C:\source_folder"
set "destination_folder=C:\destination_folder"
call :copy_folder "%source_folder%" "%destination_folder%"
echo Folder copied successfully!
exit /b
:copy_folder
setlocal
set "source=%~1"
set "destination=%~2"
if not exist "%destination%" mkdir "%destination%"
for /f "delims=" %%f in ('dir /b "%source%"') do (
set "source_file=%source%\%%f"
set "destination_file=%destination%\%%f"
if /i "%%~xf"==".txt" (
copy /y "%source_file%" "%destination_file%"
) else if exist "%source_file%\" (
call :copy_folder "%source_file%" "%destination_file%"
)
)
endlocal
exit /b
```
在这段代码中,`source_folder` 和 `destination_folder` 分别表示要拷贝的源文件夹和目标文件夹的路径,可以根据实际情况修改。在 `copy_folder` 子函数中,首先判断目标文件夹是否存在,如果不存在则创建。然后遍历源文件夹中的所有文件和文件夹,如果是文本文件则直接拷贝,如果是文件夹则递归调用 `copy_folder` 子函数,直到拷贝完整个文件夹。
阅读全文