@echo off setlocal enabledelayedexpansion rem 获取当前目录 set "current_dir=%cd%" rem 遍历当前目录中的所有文件 for %%f in (*.*) do ( rem 使用PowerShell获取文件的修改日期,并格式化为YYYY-MM-DD for /f "delims=" %%d in ('powershell -command "Get-ItemProperty -Path '%%~ff' | Select-Object -ExpandProperty LastWriteTimeUtc | Get-Date -Format yyyy-MM-dd"') do ( set "file_date=%%d" rem 去除可能存在的尾随空格(虽然Get-Date通常不会添加空格,但这是一个好习惯) set "file_date=!file_date: =!" rem 如果目标文件夹不存在,则创建它 if not exist "!file_date!" mkdir "!file_date!" rem 移动文件到目标文件夹 move "%%f" "!file_date!\" ) ) rem 清理环境变量(可选,因为脚本结束后它们会自动失效) set "file_date=" endlocal