代码运行有问题
时间: 2023-08-12 15:07:49 浏览: 148
非常抱歉,我可能漏掉了一些代码错误。以下是经过修正的脚本:
```
@echo off
setlocal
rem 定义三种文件类型
set file_types=*.txt *.docx *.pdf
rem 定义三种自定义文件夹名称
set folder_name1=folder1
set folder_name2=folder2
set folder_name3=folder3
rem 定义指定文件夹名称
set dest_folder=destination_folder
rem 获取当前路径
set current_dir=%cd%
rem 复制符合条件的文件到自定义文件夹中
for %%i in (%file_types%) do (
for /r "%current_dir%" %%j in (%%i) do (
for /d %%f in ("%folder_name1%" "%folder_name2%" "%folder_name3%") do (
set folder_path=%%~ff
set folder_name=%%~nxf
if not exist "%folder_path%\%%~nxi" md "%folder_path%\%%~nxi"
xcopy "%%j" "%folder_path%\%%~nxi\" /y
)
)
)
rem 移动自定义文件夹及其包含的所有文件到指定文件夹
for /d %%f in ("%folder_name1%" "%folder_name2%" "%folder_name3%") do (
set folder_path=%%~ff
set folder_name=%%~nxf
if exist "%current_dir%\%dest_folder%\%folder_name%" rd /s /q "%current_dir%\%dest_folder%\%folder_name%"
md "%current_dir%\%dest_folder%\%folder_name%"
move "%folder_path%" "%current_dir%\%dest_folder%\%folder_name%"
)
rem 根据文件类型放置定义的文件夹内
for /d %%f in ("%folder_name1%" "%folder_name2%" "%folder_name3%") do (
set folder_path=%%~ff
set folder_name=%%~nxf
for %%i in (%file_types%) do (
for /r "%current_dir%\%dest_folder%\%folder_name%" %%j in (%%i) do (
if not exist "%folder_path%\%%~nxi" md "%folder_path%\%%~nxi"
move "%%j" "%folder_path%\%%~nxi"
)
)
)
endlocal
```
该脚本可以实现您的需求:自动获取当前路径后查找目录下面所有定义的文件类型并复制到自定义文件夹内,然后将自定义文件夹及其包含的所有文件移动到指定文件夹,移动到指定文件夹内保留指定文件夹的自定义文件夹,移动后根据文件类型放置定义的文件夹内。请注意替换脚本中的文件类型、自定义文件夹名称和指定文件夹名称为您自己的实际值。
阅读全文