批处理中如何判断文件日期

批处理中如何判断文件日期,第1张

可以的,但是你的问题描述的太模糊了`这样吧 假设你的软件生成的LOG文件是2010-11-22log, 2010-11-23log 等等你要复制当天的到c:\logbackup\ 文件夹下,那就将以下代码保存为bat文件,置于软件生成Log文件的文件夹下,就是和LOG文件一起,然后双击运行就好了, @echo off if not exist "c:\logbackup\" md "c:\logbackup\" for %%i in (log) do if %%~ni==%date:~0,10% copy %%i "c:\logbackup\%%i"

pause 确保你的文件名中不含有空格,要是你想每天定时运行这个批处理,请将这个批处理保存在c:\backupbat,接着请在cmd中键入 at 12:00 /every:M,T,W,TH,F,S,SU start C:\backupbat 就可以实现每天12点定时备份了,确保你的机器是开启状态

一种方法是使用一个命令行工具叫做 TimeBackexe,它可以修改文件的创建时间和修改时间。您可以下载这个工具,并将它和一个批处理脚本放在同一个文件夹下,然后运行批处理脚本。批处理脚本的内容大致如下:

@echo off

for %%a in (mp4) do (

for /f "tokens=1-6 delims=/: " %%b in ('TimeBack /f "%%a" ^| find "创建时间"') do (

ren "%%a" "%%a-%%b%%c%%d-%%e%%fmp4"

)

)

这个脚本会遍历当前文件夹下的所有 mp4 文件,读取它们的创建时间,并在文件名后面加上日期和时间。如果您想修改时间格式或者其他细节,您可以根据自己的需要修改脚本。

另一种方法是使用一个软件叫做 Bulk Rename Utility,它是一个强大的批量重命名工具,支持多种规则和选项。您可以下载并安装这个软件,然后打开它,选择您想要重命名的 mp4 文件,在右侧的面板中设置好重命名规则,并点击开始按钮。重命名规则中有一个选项叫做 Date (7) ,它可以让您根据文件的创建日期或者修改日期来重命名文件。您可以在这里选择合适的日期格式和分隔符。

@echo off

for /f "delims=" %%a in ('dir /a-d/s/b') do (

echo 修改日期:%%~ta 文件名:%%~na>>3txt

)

sort 3txt>>4txt&del 3txt

pause

列出当前目录的文件名及修改日期,望采纳,

@echo off&setlocal enabledelayedexpansion

set "fn=e:\atxt"

:loop

for %%a in ("%fn%") do (

  if exist "%fn%" (

    for /f "tokens=1-10 delims=/-: " %%i in ("%%~ta !date:~,10! !time:~,5!") do (

      set/a y1=%%i,m1=1%%j%%100,d1=1%%k%%100,h1=1%%l%%100,f1=1%%m%%100,y2=%%n,m2=1%%o%%100,d2=1%%p%%100,h2=1%%q%

%100,f2=1%%r%%100

      set /a "f=(1461(y2+(m2-14)/12)/4+367(m2-2-(m2-14)/1212)/12-3((y2+(m2-14)/12)/100+1)/4-1461(y1+(m1-

14)/12)/4-367(m1-2-(m1-14)/1212)/12+3((y1+(m1-14)/12)/100+1)/4-d1+d2)1440+(h2-h1)60+f2-f1"

      if !f! LSS 15 (

          start 1txt

      )

    )

  )

)

rem 延迟大约30秒后再次判断

ping /n 30 1271 >nul

goto :loop@echo off

echo %date:~5,2%月%date:~8,2%日 %time:~0,2%:%time:~3,2% 

psuse

@echo off

for /f "delims=" %%a in ('dir /a-d/b c:\1txt ') do (

    set tm=%%~ta

)

echo %tm%

pause

不清楚你的实际文件/情况,仅以问题中的说明为据

复制粘贴到记事本,另存为xxbat,编码选ANSI@echo off

rem 提取指定文件夹/目录下所有文件的文件名和修改时间

mode con lines=3000

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

cd /d "%~dp0"

set "folder=D:\xxx\指定文件夹"

set "outfile=#resultcsv"

if not exist "%folder%" (echo;"%folder%" no found&goto end)

if "%folder:~-1%" equ "\" (set "folder=%folder:~,-1%")

(echo;Set fso=CreateObject^("ScriptingFilesystemobject"^)

echo;Do While WSHStdInAtEndOfStream=False

echo;line=WSHStdInReadLine

echo;Set f=fsoGetFile^(line^)

echo;WSHecho line ^& "|" ^& fDateLastModified

echo;Loop)>"%tmp%\vv"

for /f "tokens=1 delims=|" %%a in ('dir /a-d/b/s "%folder%\" 2^>nul^|cscript -nologo -e:vbscript "%tmp%\vv"') do (

    echo;"%%~nxa",%%b

)

:end

echo;%#% +%$%%$%/%@% %z%

pause

exit

以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI,以管理员身份运行

@echo off&cd /d "%~dp0"

rem 将当前系统时间提前几秒

set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%_% %z%

set addseconds=30

>"%tmp%\vv" echo;n=DateAdd("s",%addseconds%,now):d=right(Year(n),4) ^& "/" ^& right("0" ^& Month(n),2) ^& "/" ^& right("0" ^& Day(n),2)

>>"%tmp%\vv" echo;t=right("0" ^& Hour(n),2) ^& ":" ^& right("0" ^& Minute(n),2) ^& ":" ^& right("0" ^& Second(n),2)

>>"%tmp%\vv" echo;WSHecho d ^& " " ^& t

for /f "tokens=1,2" %%a in ('cscript -nologo -e:vbscript "%tmp%\vv"') do (

echo;%%a %%b

date %%a

time %%b

)

echo;%#% +%$%%$%/%_% %z%

pause

exit

以上就是关于批处理中如何判断文件日期全部的内容,包括:批处理中如何判断文件日期、怎么批量在视频文件后加创建日期和时间,求大佬写个BAT、如何用批处理获取当前文件夹里面所有文件的文件名及修改日期并生成txt文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10055695.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存