楼 主
如何将命令结果赋给环境变量
发表于 2007-03-16 11:36 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
如何将一个命令的结果赋给环境变量
例如我想把dir 的结果存到环境变量中。
[ Last edited by tianlijian on 2007-3-16 at 09:01 PM ]
第 2 楼
发表于 2007-03-16 11:38 · 中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 23年会员 UID 1565 性别 男 来自 河北保定
状态 离线
论坛里有很多这方面的示例,所用的命令取决于你的命令运行的环境(纯DOS还是cmd)以及你要保存到环境变量的内容。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
第 3 楼
发表于 2007-03-16 11:49 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
第 4 楼
发表于 2007-03-16 12:08 · 中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 23年会员 UID 1565 性别 男 来自 河北保定
状态 离线
将dir的所有结果保存到一个环境变量中?这是不可能的。如果是每行保存到一个环境变量还有可能。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
第 5 楼
发表于 2007-03-16 12:14 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
如果要把其中一行保存到一个环境变量中要怎么做?
假如我想把dir的所有结果保存起来,后面再用,是不是只有保存到文件中?
Thanks!
第 6 楼
发表于 2007-03-16 12:15 · 中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 23年会员 UID 1565 性别 男 来自 河北保定
状态 离线
取决于你将dir的结果保存下来用来做什么,你最好把你的需求完整的提出来,或许有更好的解决方案。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
第 7 楼
发表于 2007-03-16 12:28 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
现在在学java我想把.java文件与系统关联起来,这样我在java 文件上点右键,就可以直接对java文件进行编译,运行(在编译正确的前提下)。我需要把javac编译的结果先暂时保存下来,等到后面在显示到cmd中(实际上也可以在当时就显示,只不过我想如果能让他等一下再显示更好)?
[ Last edited by tianlijian on 2007-3-15 at 11:29 PM ]
第 8 楼
发表于 2007-03-16 12:32 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
我现在考虑把错误信息保存到一个临时文件当中。
但不知道如何实现,既不让它在cmd中显示,又把它输出到一个临时文件当中。
我用
javac 文件>nul但是错误信息,还是会在cmd中显示。
这个已经解决了,应该是
javac 文件 2>nul
出错提示应该是stdErr.
[
Last edited by tianlijian on 2007-3-16 at 11:17 AM ]
第 9 楼
发表于 2007-03-16 13:13 · 中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 23年会员 UID 1565 性别 男 来自 河北保定
状态 离线
看不出来你的要求跟将dir命令的结果保存的环境变量有什么关系,我晕了。
你如果想将javac的编译错误定向到文件中,可以使用:
javac xxx.java 2>error.txt
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
第 10 楼
发表于 2007-03-17 00:15 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
呵呵,那个dir只是举个例子,最开始没打算把整个问题说出来,所以就举了个例子,谢谢你的热心回答。
第 11 楼
发表于 2007-03-17 00:18 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
如果是每行保存到一个环境变量还有可能。 请问一下如果这个要实现该怎么实现?
第 12 楼
发表于 2007-03-17 03:43 · 中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 23年会员 UID 1565 性别 男 来自 河北保定
状态 离线
下列命令在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 楼
发表于 2007-03-17 09:40 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
第 14 楼
发表于 2007-03-17 10:00 · 中国 陕西 西安 电信
初级用户
★
积分 120 发帖 45 注册 2007-03-13 05:57 19年会员 UID 81568 性别 男
状态 离线
还有一点不明白,就是`dir ^| dir ^| findstr /n/r "." 2^>nul`中为什么要用^?
^
\\取消转义字符,即将所有转义字符的转义作用关闭。比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
在set/a中是按位异;
在findstr/r的中表示不匹配指定的字符集。 http://www.cn-dos.net/forum/viewthread.php?tid=24289&fpage=1
^是为了取消|<这些字符的的特殊意义,在这里为什么又要加上这些字符呢?
第 15 楼
发表于 2007-03-17 11:45 · 中国 河北 承德 移动
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 23年会员 UID 1565 性别 男 来自 河北保定
状态 离线
请看for命令的帮助。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正