以下是一个用Windows脚本实现自动获取当前路径后查找目录下面所有定义的文件类型并复制到自定义文件夹,然后将自定义文件夹及其包含的所有文件移动到指定文件夹的示例代码:定义三种文件类型和三种自定义文件夹名称以及一种指定的文件夹名称
时间: 2023-08-03 13:05:24 浏览: 175
以下是一个用Windows脚本实现自动获取当前路径后查找目录下面所有定义的文件类型并复制到自定义文件夹,然后将自定义文件夹及其包含的所有文件移动到指定文件夹的示例代码。假设我们定义了3种文件类型(.txt、.docx、.xlsx)和3种自定义文件夹名称(CustomFolder1、CustomFolder2、CustomFolder3),以及一种指定的文件夹名称(TargetFolder)。
```
@echo off
setlocal enabledelayedexpansion
REM 获取当前路径
set "current_dir=%CD%"
REM 指定要查找的文件类型
set "file_types=*.txt *.docx *.xlsx"
REM 遍历每种文件类型
for %%a in (%file_types%) do (
REM 获取当前文件类型的自定义文件夹名称
set "custom_folder=C:\!CustomFolder%%~xa!"
REM 查找目录下所有当前文件类型的文件,并复制到自定义文件夹中
for /r "%current_dir%" %%i in (%%a) do (
copy "%%i" "!custom_folder!"
)
REM 移动自定义文件夹及其包含的所有文件到指定文件夹
move "!custom_folder!" "C:\TargetFolder"
REM 输出移动后的路径
echo !custom_folder! and files moved to: C:\TargetFolder
)
```
代码逐行解释:
- `@echo off`:关闭命令行窗口上的回显,以避免命令输出显示在屏幕上。
- `setlocal enabledelayedexpansion`:打开延迟变量扩展模式,以便在for循环中使用`!`符号读取变量值。
- `set "current_dir=%CD%"`:使用`%CD%`系统变量获取当前路径,并将其存储在`current_dir`变量中。
- `set "file_types=*.txt *.docx *.xlsx"`:指定要查找的文件类型,使用空格分隔多个文件类型。
- `for %%a in (%file_types%) do (`:使用`for`循环遍历每种文件类型。
- `set "custom_folder=C:\!CustomFolder%%~xa!"`:根据当前文件类型定义自定义文件夹名称,例如对于.txt文件类型,自定义文件夹名称为CustomFolder.txt,其中`%%~xa`表示文件类型(.txt、.docx、.xlsx)。
- `for /r "%current_dir%" %%i in (%%a) do (copy "%%i" "!custom_folder!")`:使用`for`循环遍历当前路径下的所有符合当前文件类型的文件,并将其复制到自定义文件夹中。
- `move "!custom_folder!" "C:\TargetFolder"`:将自定义文件夹及其包含的所有文件移动到指定文件夹中。
- `echo !custom_folder! and files moved to: C:\TargetFolder`:输出移动后的路径。注意,此处需要使用`!`符号读取自定义文件夹名称的变量值。
阅读全文