bat--批处理--文件运行和删除

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:05:17
用批处理完成如下任务
2009年7月30之前运行BAT,会运行C:\a.txt
2009年7月30号之后运行BAT,会删除C:\a.txt 然后运行C:\b.txt
最好自己先测试一下,有很多时候是一个符号没有写对,
参考如下
if %date% geq 2009-07-30 del /q/f "C:\a.txt" (删除)

if %date:~0,10% geq 2009-07-30 start "" "C:\a.txt" (运行)

@echo off
set DA=%date:~0,4%%date:~5,2%%date:~8,2%
if %DA% GEQ 20090730 (
del /q/f "C:\a.txt"
start "" "C:\b.txt" ) else (
start "" "C:\a.txt" )

::考虑if语句效率问题,节省为一个语句
::所有测试都很成功

你的问题主要是bat处理日期的问题,bat本身很难进行日期处理,多数是用其他软件来进行日期的处理与分流(脚本或其他程序)。可以进行日期的处理后就没什么好说的了吧
看了下,也不是说不能处理。不过与机器的设置还有系统有很大关系。
你自己测试下date在电脑里显示的东西。不同的设置显示不一样的,不能通用啊
用echo %date%来测试,后面~0,2是截取的位置 然后再比较才可以

for /f "tokens=1,2,3 delims=- " %%a in ('@echo %date%') do set num=%%a%%b%%c
if %num% lss 20090730 start /dC: a.txt
if %num% geq 20090730 del /f/q "C:\a.txt" & start /dC: b.txt
@pause

主要帮你解决了日期的比较问题,也就是一楼所困扰的问题.其它的你自己还可以再斟酌.