@echo off
setlocal enabledelayedexpansion
title 列出指定目录下的哪些文件是昨天及前天的文件
::利用bat与vbs互相传递值的方法,列出指定目录下的哪些文件是昨天及前天的文件.
::如果没有托入目录,默认批处理当前目录
set c="%1"
if /i "%1"=="" set c="%~dp0"
echo 功能:查找%c%下所有的昨天及前天的文件.
echo.&echo 正在查找昨天文件...
call :Ffile 1
echo.&echo 正在查找前天文件...
call :Ffile 2
del !tmp!\Cv.vbs /q
echo.&pause&exit
:Ffile
for /f "skip=4 tokens=1,4 delims= " %%i in ('dir /a-d "%c%"') do (
call :Cvbs %%i,%1
if !z!==%1 echo %%i,%%j
)
goto :eof
:Cvbs
set z=0
echo x=FormatDateTime("%1",1)>!tmp!\Cv.vbs
echo y=FormatDateTime("!date:~0,10!",1)>>!tmp!\Cv.vbs
echo z=DateDiff("d",x,y)>>!tmp!\Cv.vbs
echo if z=%2 then wscript.echo z>>!tmp!\Cv.vbs
for /f "delims=" %%a in ('cscript //nologo !tmp!\Cv.vbs') do set "z=%%a"
goto :eof
============================================================
代码发出来了,乐意的话支宝:
18088682067
bat中的日期加减很不方便,而vbs中的函数拿来就用,所以,就通过bat和vbs相加来实现
好久没用了,搞了半天,才想起bat与vbs之间如何相互传递值.