日期:2014-05-17  浏览次数:20726 次

如何将vbs脚本程序执行的结果作为dos中del命令的参数
现在想做一个定期删除文件的.bat文件
先要用vbs程序算出前一天的日期值strYest
然后再用del /q strYest*.log
但如果在del中直接用strYest,系统会提示找不到strYest,也就是没有去取strYest中的值,而直接将strYest作为字符串处理
如何才能取出strYest中的值
望指教,谢谢

------解决方案--------------------
参考这段代码:

BatchFile code
@echo off
rem 假设要删除C盘test文件夹里面的十天前的文件
set TarDir=C:\test

>"%tmp%\MyDel.vbs" echo dt=date()-10
>>"%tmp%\MyDel.vbs" echo s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^&  right("0" ^& day(dt),2)
>>"%tmp%\MyDel.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo %tmp%\MyDel.vbs') do @set DateFlag=%%a
setlocal enabledelayedexpansion
for %%i in (C:\test\*.*) do (
  set t=%%~ti
  set FileDate=!t:~6,4!!t:~0,2!!t:~3,2!
  if !FileDate! lss %DateFlag% del /f "%%i"
)
endlocal
del "%tmp%\MyDel.vbs"