写一个bat将当前文件夹下非文件夹的文件名修改为创建时间,如果时间重复在后面加上序号,并且每个步骤加上0.1s的延时同时防止获取不到文件出现异常
时间: 2023-06-25 18:05:22 浏览: 130
(0)当前文件夹下所有文件及子文件的文件路径及修改时间.bat
@echo off
setlocal enabledelayedexpansion
REM 设置延时时间
set "delay=0.1"
REM 遍历当前文件夹下的所有文件
for %%a in (*) do (
REM 如果是文件夹则跳过
if "%%~a" equ "%~nx0" goto :continue
if exist "%%~a" (
REM 获取文件的创建时间
for /f "usebackq delims=" %%b in (`wmic datafile where name^="%%~a" get creationdate ^| findstr /r "[0-9]"`) do (
set "creation=%%b"
set "creation=!creation:~0,8!_!creation:~8,6!"
REM 判断是否有重复的时间
if exist "!creation!_%%~na%%~xa" (
set "i=1"
set "newname=!creation!_%%~na!i!%%~xa"
REM 如果重复则加上序号
while exist "!newname!" (
set /a "i+=1"
set "newname=!creation!_%%~na!i!%%~xa"
)
REM 重命名文件
ren "%%~a" "!newname!"
echo 重命名文件 "%%~a" 为 "!newname!"
REM 延时
ping -n 1 -w !delay! 127.0.0.1 > nul
) else (
REM 如果不重复则直接重命名
ren "%%~a" "!creation!_%%~na%%~xa"
echo 重命名文件 "%%~a" 为 "!creation!_%%~na%%~xa"
REM 延时
ping -n 1 -w !delay! 127.0.0.1 > nul
)
)
) else (
echo 获取文件 "%%~a" 失败
)
:continue
)
pause
exit
阅读全文