@echo off set current_path=%cd% set file_type1=.prt set file_type2=.cxp set file_type3=.doc set folder_name1=程序模型 set folder_name2=工艺规程 set folder_name3=沟通记录 set destination_folder=工艺文件 if not exist "%folder_name1%" mkdir "%folder_name1%" if not exist "%folder_name2%" mkdir "%folder_name2%" if not exist "%folder_name3%" mkdir "%folder_name3%" for /r "%current_path%" %%i in (*) do ( if "%%~xi" == "%file_type1%" ( copy "%%i" "%folder_name1%\" ) else if "%%~xi" == "%file_type2%" ( copy "%%i" "%folder_name2%\" ) else if "%%~xi" == "%file_type3%" ( copy "%%i" "%folder_name3%\" ) ) xcopy "%folder_name1%" "%destination_folder%\%folder_name1%\" /s /e rd "%folder_name1%" /s /q xcopy "%folder_name2%" "%destination_folder%\%folder_name2%\" /s /e rd "%folder_name2%" /s /q xcopy "%folder_name3%" "%destination_folder%\%folder_name3%\" /s /e rd "%folder_name3%" /s /q优化代码算法
时间: 2023-07-02 12:24:36 浏览: 208
这段代码是一个批处理脚本,目的是将当前目录下的不同类型的文件分别复制到对应的文件夹中,并将这些文件夹复制到指定的目标文件夹中。优化代码的算法可以有以下几点:
1. 使用变量存储文件类型和文件夹名称,避免重复输入和修改。例如,可以使用数组来存储文件类型和文件夹名称,这样可以方便地扩展和修改代码。
2. 遍历文件时,可以使用 FOR /D 命令来遍历目录,这样可以避免处理不必要的文件。
3. 使用 XCOPY 命令来复制文件夹,这样可以提高复制效率并且可以保留目录结构。
4. 使用 DEL 命令来删除文件夹,这样可以避免使用 RD 命令时出现错误提示。
综上所述,以下是优化后的代码:
```
@echo off
setlocal enabledelayedexpansion
set current_path=%cd%
set file_types[1]=.prt
set file_types[2]=.cxp
set file_types[3]=.doc
set folder_names[1]=程序模型
set folder_names[2]=工艺规程
set folder_names[3]=沟通记录
set destination_folder=工艺文件
for /d %%i in (*) do (
set folder_name=%%i
for /f "tokens=1 delims==" %%j in ('set folder_names[') do (
if "!folder_name!" == "%%j" (
set folder_name=!folder_names[%%j]!
)
)
if "!folder_name!" neq "!destination_folder!" (
for /f "tokens=1 delims==" %%j in ('set file_types[') do (
if exist "%%i\*%%j" (
xcopy "%%i\*%%j" "!folder_name!\%%j\" /s /e
)
)
xcopy "!folder_name!" "!destination_folder!\!folder_name!\" /s /e
del "!folder_name!" /s /q
)
)
```
这段代码使用了 FOR /D 命令遍历目录,使用数组存储文件类型和文件夹名称,使用 XCOPY 命令复制文件夹,并使用 DEL 命令删除文件夹。同时,使用了延迟变量扩展来获取数组中的值。
阅读全文