bat批处理 中set的用法

:beginsetd=%date:~9,1%if%d%=0taskill/f/imar.exeif%d%=5taskill/f/imar.exeping-n100127.... :begin
set d=%date:~9,1%
if %d%=0 taskill /f /im ar.exe
if %d%=5 taskill /f /im ar.exe
ping -n 100 127.1>nul
tasklist|findstr /i %n%||start c:\ar.exe
goto begin

我这个bat就是5天结束一次进程 并且同时监视进程

为什么会一闪而过呢
展开
 我来答
sudoku52
2014-08-05 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4904万
展开全部
不好意思,if语句应该是双等号,当时回答时匆忙之间忽略了,抱歉。
下次有这种一闪而过的情况都是有语法错误,这时不要双击批处理运行,先打开一个cmd窗口,cd到批处理所在路径,输入批处理文件名回车运行,这时能看到错误提示,根据错误提示排查语法错误。

if %d%==0 taskill /f /im ar.exe
if %d%==5 taskill /f /im ar.exe
追问
朋友能再看看我在yyykkkyyy中贴的代码吗 taskkill错误
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyykkkyyyy
2014-08-04 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3305万
展开全部
if 语句格式错误 单个等号是赋值用的,这里要写成==或equ
更多追问追答
追问
哥们 能解释下这段吗

set d=%date:~9,1%
if %d%=0 taskill /f /im ar.exe
if %d%=5 taskill /f /im ar.exe
追答
%date:~9,1% 表示取系统日期中第9字符后的一个,即取日号的个位数赋给变量d
后两句即当d是0或5时执行强行中止ar.exe进程
其实可取除5的余数来判断可少一行代码(如此进程未运行会提示出错,再加个屏蔽出错信息):
set "d=%date:~9,1%%%5"
if %d% equ 0 taskill /f /im ar.exe 2>nul
就语句合法来说,提问所贴代码应只是一部分 不然那个 %n% 处仍会出错
实际用意我没明白,检测日期是否需要一日内反复循环且中止进程...自己斟酌一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
依梦琴瑶
高粉答主

2014-08-04 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
if命令比较需要使用双等于号!
追问
set d=%date:~9,1%
if %d%=0 taskill /f /im ar.exe
if %d%=5 taskill /f /im ar.exe能解释下这里吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式