set /p a= <a.txt(此语句自动将a.txt文件里的字符串赋值给变量a,此方法可行)
echo abcd|set /p a=(用数据通道将字符串abcd传给变量a,此方法不可行,为什么)
还有其他自动给环境变量赋值的方法吗,请帮帮我,谢谢
请举个例子如何用for /f语句再利用set自动给变量赋值(写一个命令让我看看)
谢谢
这种例子太多了,为了说明把命令值赋给变量,给几个命令你在命令行测试:
显示网络信息
ipconfig/all
从中截取 mac地址所在行
ipconfig/all|find "Physical"
用for命令仅显示mac地址
for /f "tokens=2 delims=:" %i in ('ipconfig/all^|find "Physical"')do @echo %i
这里是直接显示,比如要赋给一变量,把上行的echo %i改为set mac=%i
不过,如果有几个mac地址,将最终赋为最后一个mac地址,当然要想有几个就保存几个也是可以的,你需要具备更多的处理能力,
补充提示: for命令里的%i 如写到批处理中得双写%符,有兴趣的话,我空间还可以看for的文章,但是有关变量的处理,以及综合能力也很重要
for语句能不能嵌套呢
为什么管道符“|”前要加“^”呢
谢谢
for可以嵌套
^是转义符,代表之后的一个特殊字符在进行处理时作为普通字符, 什么时候及为什么要加它,涉及命令解析处理过程
我在cmd内输入:at 14:17 /interactive cmd /k dir c:\^|find "DIR"
用at察看,待执行的命令行是:at 14:17 /interactive cmd /k dir c:\|find DIR
没有了双引号,执行时显示“find格式不正确”,
怎样才能在计划任务中 正确使用find指令
谢谢
呵呵,你这干的活是我都没弄过的,动动脑子,既然是少了引号你再多加一层引号嘛
嗯试了一下,它还是把引号去了,那你就把find换成findstr,它可以不要引号
请问这个是dos批处理文件吗,怎么java都出来了