跪求大神提供在windows2008上BAT文件,具体功能见帖子内容
bat吧
全部回复
仅看楼主
level 1
majun1984125 楼主
各位BAT大神好,因公司领导要求,需要我写两个在windows2008上运行的BAT程序:
一,程序一需要判断当前时间是否属于D盘的holiday.txt文本中的节假日列表中的一天,如果属于则不做任何操作,如果不属于则调用D盘的startup.bat程序。
二,程序二需要判断当前时间+1天的日期是否属于D盘的holiday.txt文本中的节假日列表中的一天,如果属于则调用D盘的stop.bat程序,如果不属于则不做任何操作。
2017年07月27日 18点07分 1
level 1
majun1984125 楼主
我已经研究了两天BAT程序了,还是没做出来。求大神赐教。
2017年07月27日 18点07分 2
level 2
不能用vbs么。。。我觉得这个的话 vbs比bat简单。。。
而且,你的 holiday.txt 里面的日期是什么格式的,能否举个例子
2017年07月27日 23点07分 3
不是不能用vbs,我会已点BAT脚本,但不会vbs[汗]。 格式就是如下: 2017-07-28 2017-07-30 2017-08-15
2017年07月28日 02点07分
level 9
holiday文件内容格式?
2017年07月28日 00点07分 4
level 9
格式简单2条命令即可
2017年07月28日 00点07分 5
格式如下: 2017-07-28 2017-07-30 2017-08-15
2017年07月28日 02点07分
提示: 查找和对比用find 调用用call 就两条命令
2017年08月16日 03点08分
level 1
majun1984125 楼主
格式就是如下:
2017-07-28
2017-07-30
2017-08-15
2017年07月28日 02点07分 6
level 1
majun1984125 楼主
求大神指点啊!在线等!
2017年07月28日 07点07分 7
level 14
纯bat有点麻烦,日期+1要写一堆判断
2017年07月28日 11点07分 8
不过用date和time作弊也许可以
2017年07月28日 11点07分
level 12
第一个
@echo off
setlocal EnableDelayedExpansion
set y=!date:~0,4!
set m=!date:~5,2!
set d=!date:~8,2!
call:zero m
call:zero d
for /f "tokens=1,2,3 delims=-" %%a in (holiday.txt) do (
set y2=%%a
set m2=%%b
set d2=%%c
call:zero m2
call:zero d2
if "!y!/!m!/!d!"=="!y2!/!m2!/!d2!" set pd=1
)
if "!pd!"=="" start "" "d:\startup.bat"
pause
exit
:zero
set t=!%1:~0,1!
if "!t!"=="0" set %1=!%1:~1,1!
goto:eof
2017年07月29日 16点07分 21
太麻烦了
2017年08月16日 03点08分
find和call即可
2017年08月16日 03点08分
如果%date%日期格式和文件不一样(WIN7分隔符好像就是-),改一下自己格式find找一下即可,call调用那个文件即可。
2017年08月16日 03点08分
level 12

@echo off
setlocal EnableDelayedExpansion
set y=!date:~0,4!
set m=!date:~5,2!
set d=!date:~8,2!
call:zero m
call:zero d
set /a d+=1
set /a t=y%%4
if "!t!"=="0" (
set next=32,30,32,31,32,31,32,32,31,32,31,32
) else (
set next=32,29,32,31,32,31,32,32,31,32,31,32
)
call:jmp !m!
if "!m!"=="13" set /a y+=1,m=1
for /f "tokens=1,2,3 delims=-" %%a in (holiday.txt) do (
set y2=%%a
set m2=%%b
set d2=%%c
call:zero m2
call:zero d2
if "!y!/!m!/!d!"=="!y2!/!m2!/!d2!" set pd=1
)
if "!pd!"=="1" start "" "d:\stop.bat"
pause
exit
:jmp
for /f "tokens=%1 delims=," %%a in ("!next!") do if "!d!"=="%%a" set /a m+=1,d=1
goto:eof
:zero
set t=!%1:~0,1!
if "!t!"=="0" set %1=!%1:~1,1!
goto:eof
2017年07月29日 16点07分 25
level 12
发了二十多遍才发出去……
2017年07月29日 16点07分 26
level 12
百度做成这个样真是令人无语
2017年07月30日 02点07分 27
万分感谢!已解决,还加了日期超过31天的判断,厉害![哈哈]
2017年07月30日 09点07分
level 11
@Byaidu 大神 帮我看下这个(用winrar备份firefox到D:\Tools\Firefox.rar)
bat文件手动执行正常 我在taskschd.msc中添加计划任务就关闭不了firefox.exe的进程(前台程序已关闭)
后面压缩是执行了的 重启firefox没执行
还有个 我把定时任务切换到登录用户 bat也不能前台执行
====== start ======
@echo off
title 备份Firefox
echo.
del /f /s /q /a d:\Tools\Firefox.rar
tasklist|find /i "plugin-container.exe"
if %ERRORLEVEL% == 0 taskkill /f /im "plugin-container.exe"
tasklist|find /i "Firefox.exe"
set err=%ERRORLEVEL%
if %err% == 0 goto stopbakstart
if %err% == 1 goto bakfirefox
:stopbakstart
taskkill /f /im "Firefox.exe"
goto bakfirefox
:bakfirefox
rem 指定WINRAR路径并设置加密
set WinRAR="D:\Program Files\WinRAR\rar.exe"
set Psw=123456
echo.
echo 正在备份Firefox......
echo.
%WinRAR% a -p%Psw% -r -s -k -ibck -inul -x"*\Crash Reports" -x"*\Crash Reports\*" -ep1 D:\Tools\Firefox.rar %AppData%\Mozilla\Firefox
rem -ag :当创建压缩文件时,以格式“YYYYMMDDHHMMSS”附加当前日期字符串,文件名YYYYMMDDHHMMSS.rar;
rem -p :加密压缩文件;
rem -k :锁定压缩文件;
rem -s :创建固实压缩文件;
rem -ibck :后台运行;
rem d:\自动备份OA\MYOA.rar :备份的路径和基本名称(-ag参数会自动在bak后加上系统当前时间);
rem d:\MYOA\ :要备份的文件目录;T
echo.
echo 备份完成
if %err% == 0 goto start
exit
@echo off
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例需要Win2003/Vista/Win7系统自带的forfiles命令的支持
:start
cd /D "D:\Program Files (x86)\Mozilla Firefox"
start firefox.exe
rem -------------------粘贴以上,保存为BAT文件,文件名备份Firefox.bat,放到D:\Tools\.softconfig
rem [有问题]Schtasks /create /tn 备份Firefox /tr "D:\Tools\.softconfig\备份Firefox.bat" /sc weekly /D SUN /st 23:00 /ru system
rem sc config Schedule start= AUTO
rem sc start ScheduleTO
rem at 23:00 /every:Su D:\Tools\.softconfig\备份Firefox.bat
rem --------粘贴生成生成系统计划任务
====== end ======
2017年08月09日 15点08分 28
1