用Windows脚本实现自动获取当前路径后查找目录下面所有定义的文件类型并复制到自定义文件夹内,然后将自定义文件夹及其包含的所有文件移动到指定文件夹:开头定义三种文件类型和三种自定义文件夹名称以及一种指定的文件夹名称;移动到指定文件夹内保留指定文件夹的自定义文件夹;移动后根据文件类型放置定义的文件夹内
时间: 2023-08-02 07:05:48 浏览: 89
好的,以下是一个实现该功能的Windows脚本:
```
@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
```
该脚本首先定义了三种文件类型和三种自定义文件夹名称以及一个指定的文件夹名称。然后获取当前路径并复制符合条件的文件到自定义文件夹中。接着,脚本遍历三个自定义文件夹并将其移动到指定文件夹中,并根据文件类型将文件放置到相应的自定义文件夹中。
阅读全文