dos批处理下自动给环境变量赋值的问题

 我来答
贲亭晚呼诗
2020-01-01 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:25%
帮助的人:876万
展开全部
我的回答仅供参考,不嫌水平低和罗嗦的话,我空间有篇关于变量的文章也可以去看看。
1
用户定义的变量称之为环境变量不妥,
因为所设置的变量仅是在当前CMD窗口下有效,也并非定义某种环境
2
应该说CMD提供给变量赋值仅一个命令,那就是set
3
set
命令给变量赋值有三种基本形式,不加参数的和加
/p
及/a
其中,set/p
除了能接收键盘输入值外,还提供了你所说的形式,把一个文件的第一行赋给变量,
而set/a
兼计算功能,将结果(数字型)赋给变量,且可一条命令(不用连接命令)给多个变量赋值
4
按道理说用管道命令是可以代替用户输入的,正如你所说的实际上对set/p
不行,我只能这么猜测,
命令无非是设计出来的程序,一般命令如遇运行过程中需要接收键盘输入,设计者都考虑了可以接收管道传入值代替,而这个set/p却并没有考虑它,以前DOS的set命令并没有/p功能,也许当初在"改造"它时疏忽,后来又觉得没必要再去修改。总之实际不行是硬道理,
没必要去追究为什么
5
我想很多人会有这种看法,要是可以把某命令的结果有个命令直接赋给变量就好了,遗憾的是没有,好在有个for命令,经扩展功能后,确实“强大”得很,其中加/f
的可以把命令结果、文件内容或多行的字符串,逐行按需要截取后直接进行处理或再利用set命令赋给某变量备用,提到它并不是说多了一种赋值方法,而是很多时候是在这个命令里(还是利用set)赋值的
赛孝六婷
2020-04-01 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:25%
帮助的人:632万
展开全部
echo
abcd|set
/p
a=
这样有点多次一举,下面这句能实现你的想法
set
a=abcd
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式