Board logo

标题: [其他] [已解决]批处理怎样把命令输出结果作为变量值使用? [打印本页]

作者: garyng    时间: 2011-8-10 18:51     标题: [已解决]批处理怎样把命令输出结果作为变量值使用?

本帖最后由 garyng 于 2011-8-11 16:55 编辑

我运行一个程序(加了参数),输出结果为n
请问我要怎样把这个输出结果作为变量值使用?(不产生任何临时文件)
也就是echo !y!为n
例如
DEF的软件:finfo
在批量处理中用了:finfo.exe /rlu 1 yy.txt
请问要怎样把   finfo.exe /rlu 1 yy.txt  的输出结果作为变量值来使用?(!y!)

作者: lfoqtal    时间: 2011-8-10 19:36

你应该学习如何使用FOR/F语言,这里的很多程序代码都是使用这种方法的,可以好好查一查
作者: garyng    时间: 2011-8-10 20:40

我还是只小小的菜鸟,大哥能否为我解释下~
作者: yhp1996    时间: 2011-8-10 20:47

for /f "tokens=*" %%a in ('命令') do set a=%%a
命令就是你要的命令,如果是外部命令(Exe文件等)把单引号换成双引号如:
for /f "tokens=*" %%a in ("文件名") do set a=%%a
变量为a,可替换别的字母
作者: garyng    时间: 2011-8-10 21:27

我找到“批处理For语句从入门到精通”的帖子了
正在学习~
谢谢提醒~
作者: CUer    时间: 2011-8-10 23:25

  1. @echo off
  2. for /f "delims=" %%a in ('finfo.exe /rlu 1 yy.txt') do (
  3.     echo,%%a
  4. )
  5. pause
复制代码

作者: garyng    时间: 2011-8-11 16:26

  1. echo,%%a
复制代码
中的","是什么意思?
作者: garyng    时间: 2011-8-11 18:25

我这只菜鸟还有个问题
请问%random%可以不是数字吗?可以随机输出字母吗?
作者: zaixinxiangnian    时间: 2011-8-11 18:42

回复 4# yhp1996


    TO yhp1996
为什么要变成双引号呢,不是有种用法(当路径有特殊符号),加USEBACKQ,单引号要变后引号,双引号变单引号,文件要用双引号括起
怎么在这里单引号要变双引号呢?
作者: Batcher    时间: 2011-8-11 19:27

回复 7# garyng


命令分隔符,空格、逗号、分号等都行。
作者: Batcher    时间: 2011-8-11 19:27

回复 8# garyng


不同的问题请单独发帖提问
作者: garyng    时间: 2011-8-11 19:42

回复 11# Batcher

对不起版主,我知道错了,现在就另外发帖提问~
作者: garyng    时间: 2011-8-11 19:45

回复 10# Batcher

明白啦~谢谢~
作者: yhp1996    时间: 2011-8-11 21:30

回复 9# zaixinxiangnian


    单引号是内部命令,不加引号是文件名(不会执行),双引号是外部程序、文件(会执行)




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2