中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何将命令结果赋给环境变量
« [1] [2] »
作者:
标题: 如何将命令结果赋给环境变量 上一主题 | 下一主题
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『楼 主』:  如何将命令结果赋给环境变量

如何将一个命令的结果赋给环境变量

例如我想把dir 的结果存到环境变量中。

[ Last edited by tianlijian on 2007-3-16 at 09:01 PM ]

2007-3-16 11:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

论坛里有很多这方面的示例,所用的命令取决于你的命令运行的环境(纯DOS还是cmd)以及你要保存到环境变量的内容。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-16 11:38
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 3 楼』:  

是在cmd中我想把dir的所有结果都保存到当中

2007-3-16 11:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 4 楼』:  

将dir的所有结果保存到一个环境变量中?这是不可能的。如果是每行保存到一个环境变量还有可能。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-16 12:08
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 5 楼』:  

如果要把其中一行保存到一个环境变量中要怎么做?
假如我想把dir的所有结果保存起来,后面再用,是不是只有保存到文件中?
Thanks!

2007-3-16 12:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 6 楼』:  

取决于你将dir的结果保存下来用来做什么,你最好把你的需求完整的提出来,或许有更好的解决方案。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-16 12:15
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 7 楼』:  

现在在学java我想把.java文件与系统关联起来,这样我在java 文件上点右键,就可以直接对java文件进行编译,运行(在编译正确的前提下)。我需要把javac编译的结果先暂时保存下来,等到后面在显示到cmd中(实际上也可以在当时就显示,只不过我想如果能让他等一下再显示更好)?

[ Last edited by tianlijian on 2007-3-15 at 11:29 PM ]

2007-3-16 12:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 8 楼』:  

我现在考虑把错误信息保存到一个临时文件当中。
但不知道如何实现,既不让它在cmd中显示,又把它输出到一个临时文件当中。
我用
javac 文件>nul
但是错误信息,还是会在cmd中显示。

这个已经解决了,应该是
javac 文件 2>nul
出错提示应该是stdErr.

[ Last edited by tianlijian on 2007-3-16 at 11:17 AM ]

2007-3-16 12:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 9 楼』:  

看不出来你的要求跟将dir命令的结果保存的环境变量有什么关系,我晕了。

你如果想将javac的编译错误定向到文件中,可以使用:
javac xxx.java 2>error.txt



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-16 13:13
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 10 楼』:  

呵呵,那个dir只是举个例子,最开始没打算把整个问题说出来,所以就举了个例子,谢谢你的热心回答。

2007-3-17 00:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 11 楼』:  



  Quote:
如果是每行保存到一个环境变量还有可能。

请问一下如果这个要实现该怎么实现?

2007-3-17 00:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 12 楼』:  

下列命令在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 可用字节

当然,如果真的设置时,命令行中包含“< >”这些字符,可能需要进一步加工处理才能比较完美的实现。

   此帖被 +2 点积分    点击查看详情   
评分人:【 tianlijian 分数: +2  时间:2007-3-17 10:01




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-17 03:43
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 13 楼』:  

呵呵,太感谢了。

2007-3-17 09:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 14 楼』:  

还有一点不明白,就是`dir ^| dir ^| findstr /n/r "." 2^>nul`中为什么要用^?

  Quote:
^
\\取消转义字符,即将所有转义字符的转义作用关闭。比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
在set/a中是按位异;
在findstr/r的[]中表示不匹配指定的字符集。

http://www.cn-dos.net/forum/viewthread.php?tid=24289&fpage=1

^是为了取消|<这些字符的的特殊意义,在这里为什么又要加上这些字符呢?

2007-3-17 10:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 15 楼』:  

请看for命令的帮助。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-17 11:45
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: