bat获取文件夹路径,并对该文件夹下所有文件日期并创建对应日期的文件夹
时间: 2023-08-11 12:03:18 浏览: 482
bat批处理文件知识汇总
可以使用以下的 BAT 脚本来实现:
```
@echo off
setlocal enabledelayedexpansion
set source_dir=%~1
set target_dir=C:\target_dir
for /f "delims=" %%i in ('dir /b /a-d "%source_dir%"') do (
set file=%%i
for /f "usebackq" %%j in ('wmic datafile where name^="%source_dir%\!file!" get lastmodified ^| find "."') do (
set datetime=%%j
set date=!datetime:~0,4!-!datetime:~4,2!-!datetime:~6,2!
if not exist "%target_dir%\!date!\" md "%target_dir%\!date!\"
move "%source_dir%\!file!" "%target_dir%\!date!\"
)
)
echo Done.
```
在脚本中,`source_dir` 是通过命令行参数传入的需要处理的文件夹路径,`target_dir` 是需要创建日期文件夹的目标文件夹路径。
首先,使用 `for` 循环遍历目标文件夹下的所有文件,然后使用 `wmic` 命令获取文件的最后修改时间。接着,使用字符串截取方法将时间转换为日期格式,然后使用 `if not exist` 命令创建对应日期的文件夹。最后,使用 `move` 命令将文件移动到对应的日期文件夹中。
注意,在 BAT 脚本中,需要使用 `%~1` 来获取命令行参数,并且需要使用 `setlocal enabledelayedexpansion` 命令来启用延迟环境变量扩展,以便在循环中使用 `!` 来引用变量。
阅读全文