找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 36664|回复: 13

[其他] [已解决]批处理怎样把命令输出结果作为变量值使用?

[复制链接]
发表于 2011-8-10 18:51:19 | 显示全部楼层 |阅读模式
本帖最后由 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!)

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-8-10 19:36:38 | 显示全部楼层
你应该学习如何使用FOR/F语言,这里的很多程序代码都是使用这种方法的,可以好好查一查
 楼主| 发表于 2011-8-10 20:40:33 | 显示全部楼层
我还是只小小的菜鸟,大哥能否为我解释下~
发表于 2011-8-10 20:47:08 | 显示全部楼层
for /f "tokens=*" %%a in ('命令') do set a=%%a
命令就是你要的命令,如果是外部命令(Exe文件等)把单引号换成双引号如:
for /f "tokens=*" %%a in ("文件名") do set a=%%a
变量为a,可替换别的字母

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-8-10 21:27:04 | 显示全部楼层
我找到“批处理For语句从入门到精通”的帖子了
正在学习~
谢谢提醒~
发表于 2011-8-10 23:25:07 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in ('finfo.exe /rlu 1 yy.txt') do (
  3.     echo,%%a
  4. )
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-8-11 16:26:47 | 显示全部楼层
  1. echo,%%a
复制代码
中的","是什么意思?
 楼主| 发表于 2011-8-11 18:25:40 | 显示全部楼层
我这只菜鸟还有个问题
请问%random%可以不是数字吗?可以随机输出字母吗?
发表于 2011-8-11 18:42:57 | 显示全部楼层
回复 4# yhp1996


    TO yhp1996
为什么要变成双引号呢,不是有种用法(当路径有特殊符号),加USEBACKQ,单引号要变后引号,双引号变单引号,文件要用双引号括起
怎么在这里单引号要变双引号呢?
发表于 2011-8-11 19:27:34 | 显示全部楼层
回复 7# garyng


命令分隔符,空格、逗号、分号等都行。
发表于 2011-8-11 19:27:59 | 显示全部楼层
回复 8# garyng


不同的问题请单独发帖提问
 楼主| 发表于 2011-8-11 19:42:26 | 显示全部楼层
回复 11# Batcher

对不起版主,我知道错了,现在就另外发帖提问~
 楼主| 发表于 2011-8-11 19:45:43 | 显示全部楼层
回复 10# Batcher

明白啦~谢谢~
发表于 2011-8-11 21:30:18 | 显示全部楼层
回复 9# zaixinxiangnian


    单引号是内部命令,不加引号是文件名(不会执行),双引号是外部程序、文件(会执行)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:28 , Processed in 0.023799 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表