bat获取当前文件夹及子文件夹中所有文件的名称、修改时间、大小,并判断上一次修改时间是否大于180天,大于则输出到指定文件夹中
时间: 2023-08-09 07:09:34 浏览: 694
以下是一个使用 Windows 的批处理脚本实现该功能的示例:
```
@echo off
set "root=%cd%"
set "output_folder=C:\Output"
for /r "%root%" %%f in (*) do (
set "name=%%~nxf"
set "modified=%%~tf"
set "size=%%~zf"
REM 计算文件最后修改时间和当前日期之间的天数差
for /f %%d in ('powershell "(get-date)-[datetime]::parse('%modified%')"^|select -expa Days') do set "days_ago=%%d"
REM 如果文件最后一次修改时间大于180天前,则将文件复制到指定目录
if %days_ago% gtr 180 (
echo %name%,%modified%,%size% >> "%output_folder%\output.csv"
copy "%%f" "%output_folder%"
)
)
```
上面的脚本使用了 `for /r` 循环来遍历当前文件夹及其子文件夹中的所有文件。然后,对于每个文件,它提取了文件名、修改时间和大小。接着,它使用 PowerShell 计算了文件最后一次修改时间和当前日期之间的天数差,并判断是否大于 180 天。如果是,则将文件名、修改时间和大小输出到一个 CSV 文件中,并将文件复制到指定的输出文件夹中。注意,这个脚本假定输出文件夹已经存在,如果不存在则需要先创建。
阅读全文