批处理for循环中引用变量问题

setbat_name=test.batfor/f%%nin('tasklist/fi"imagenameeqcmd.exe"/v^|findstr%bat_name%^... set bat_name=test.bat
for /f %%n in ('tasklist /fi "imagename eq cmd.exe" /v ^| findstr %bat_name% ^| findstr "cmd"') do (
echo %%n
)

以上命令写成bat文件,直接cmd执行没问题,但是放计划任务中执行for循环就没有输出结果
展开
 我来答
l7722526
2019-08-06 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3659万
展开全部
使用扩展命令,在执行这个for的前面增加一行
setlocal enabledelayedexpansion

一般是在批处理文件的最上面添加;

需要使用到 相对路径或者绝对路径的话,可以看for 的帮助:
另外,FOR 变量参照的替换已被增强。您现在可以使用下列选项语法:
%~I - 删除任何引号("),扩展 %I
%~fI - 将 %I 扩展到一个完全合格的路径名
%~dI - 仅将 %I 扩展到一个驱动器
%~pI - 仅将 %I 扩展到一个路径
%~nI - 仅将 %I 扩展到一个文件名
%~xI - 仅将 %I 扩展到一个文件扩展名
%~sI - 扩展的路径只含有短名
%~aI - 将 %I 扩展到文件的文件属性
%~tI - 将 %I 扩展到文件的日期/时间
%~zI - 将 %I 扩展到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩展到
空字符串
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式