![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 20:37 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何将命令结果赋给环境变量 |
| 可打印版本 1,876 / 16 |
| 第1楼 tianlijian | 发表于 2007-03-16 11:36 |
| 初级用户 发帖 45 积分 120 | |
|
如何将命令结果赋给环境变量 如何将一个命令的结果赋给环境变量
例如我想把dir 的结果存到环境变量中。 [ Last edited by tianlijian on 2007-3-16 at 09:01 PM ] |
|
| 第2楼 Climbing | 发表于 2007-03-16 11:38 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
论坛里有很多这方面的示例,所用的命令取决于你的命令运行的环境(纯DOS还是cmd)以及你要保存到环境变量的内容。
|
|
| 第3楼 tianlijian | 发表于 2007-03-16 11:49 |
| 初级用户 发帖 45 积分 120 | |
|
是在cmd中我想把dir的所有结果都保存到当中
|
|
| 第4楼 Climbing | 发表于 2007-03-16 12:08 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
将dir的所有结果保存到一个环境变量中?这是不可能的。如果是每行保存到一个环境变量还有可能。
|
|
| 第5楼 tianlijian | 发表于 2007-03-16 12:14 |
| 初级用户 发帖 45 积分 120 | |
|
如果要把其中一行保存到一个环境变量中要怎么做?
假如我想把dir的所有结果保存起来,后面再用,是不是只有保存到文件中? Thanks! |
|
| 第6楼 Climbing | 发表于 2007-03-16 12:15 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
取决于你将dir的结果保存下来用来做什么,你最好把你的需求完整的提出来,或许有更好的解决方案。
|
|
| 第7楼 tianlijian | 发表于 2007-03-16 12:28 |
| 初级用户 发帖 45 积分 120 | |
|
现在在学java我想把.java文件与系统关联起来,这样我在java 文件上点右键,就可以直接对java文件进行编译,运行(在编译正确的前提下)。我需要把javac编译的结果先暂时保存下来,等到后面在显示到cmd中(实际上也可以在当时就显示,只不过我想如果能让他等一下再显示更好)?
[ Last edited by tianlijian on 2007-3-15 at 11:29 PM ] |
|
| 第8楼 tianlijian | 发表于 2007-03-16 12:32 |
| 初级用户 发帖 45 积分 120 | |
|
我现在考虑把错误信息保存到一个临时文件当中。
但不知道如何实现,既不让它在cmd中显示,又把它输出到一个临时文件当中。 我用但是错误信息,还是会在cmd中显示。 这个已经解决了,应该是 出错提示应该是stdErr. [ Last edited by tianlijian on 2007-3-16 at 11:17 AM ] |
|
| 第9楼 Climbing | 发表于 2007-03-16 13:13 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
看不出来你的要求跟将dir命令的结果保存的环境变量有什么关系,我晕了。
你如果想将javac的编译错误定向到文件中,可以使用: javac xxx.java 2>error.txt |
|
| 第10楼 tianlijian | 发表于 2007-03-17 00:15 |
| 初级用户 发帖 45 积分 120 | |
|
呵呵,那个dir只是举个例子,最开始没打算把整个问题说出来,所以就举了个例子,谢谢你的热心回答。
|
|
| 第11楼 tianlijian | 发表于 2007-03-17 00:18 |
| 初级用户 发帖 45 积分 120 | |
如果是每行保存到一个环境变量还有可能。请问一下如果这个要实现该怎么实现? |
|
| 第12楼 Climbing | 发表于 2007-03-17 03:43 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
下列命令在XP CMD环境下测试通过(将do后面的@echo去掉即可实现设置环境变量):
d:\>for /f "usebackq tokens=1,* delims=:" %i in (`dir ^| findstr /n/r "." 2^>nul`) do @echo set var%i=%j set var1= 驱动器 D 中的卷是 HDAL1_WORK set var2= 卷的序列号是 3D58-38C4 set var4= d:\ 的目录 set var6=2007-01-08 16:51 <DIR> AutoRun set var7=2007-01-29 10:33 <DIR> AVP6 set var8=2006-11-09 15:48 <DIR> backup set var9=2006-08-02 23:30 <DIR> Documents and Settings set var10=2006-12-31 11:04 <DIR> dosTools set var11=2006-12-07 17:18 <DIR> Downloads set var12=2007-03-12 13:18 <DIR> downtemp set var13=2006-11-18 11:16 <DIR> Games set var14=2006-11-09 15:56 <DIR> LnxTools set var15=2007-03-12 16:50 <DIR> My Documents set var16=2007-01-14 11:02 <DIR> Program Files set var17=2006-11-09 15:48 <DIR> syssoft set var18=2006-11-07 14:51 <DIR> SysTools set var19=2007-03-04 20:53 <DIR> WinTools set var20=2007-03-12 16:50 <DIR> XYF set var21= 0 个文件 0 字节 set var22= 15 个目录 32,002,949,120 可用字节 当然,如果真的设置时,命令行中包含“< >”这些字符,可能需要进一步加工处理才能比较完美的实现。 |
|
| 第13楼 tianlijian | 发表于 2007-03-17 09:40 |
| 初级用户 发帖 45 积分 120 | |
|
呵呵,太感谢了。
|
|
| 第14楼 tianlijian | 发表于 2007-03-17 10:00 |
| 初级用户 发帖 45 积分 120 | |
|
还有一点不明白,就是`dir ^| dir ^| findstr /n/r "." 2^>nul`中为什么要用^?
^http://www.cn-dos.net/forum/viewthread.php?tid=24289&fpage=1 ^是为了取消|<这些字符的的特殊意义,在这里为什么又要加上这些字符呢? |
|
| 第15楼 Climbing | 发表于 2007-03-17 11:45 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
请看for命令的帮助。
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |