本帖最后由 YJDP 于 2012-6-29 14:17 编辑
http://www.bathome.net/thread-9873-1-1.html
此帖13楼的代码- @echo off
- set a=str
- set a=%a:str=&hostname%
- echo %a%
- pause
复制代码 我改成:- @echo off
- set a=str
- set a=%a:str=&start 123.exe 2>&1%
- echo 这是运行中A的值%a%
- echo 这是写入TXT中a的值%a%>>1.txt
- pause
复制代码 注:123.exe 是不存在的。
运行批处理结果如下:
1、显示:
第一行 系统找不到文件 123.exe
每二行 这是运行中A的值str=
2、目录下生成一个1.txt文本,内容为:这是运行中A的值str=(退格符在文本中显示为“口”)
每三行代码运行得到的变量值是正确的,但是第4行代码显示输出%a%的值和第5行代码输出到1.txt中%a%的值为什么却是“str=”,
我分析这是因为start 这句代码本身就没有执行成功,所以第一行显示的“系统找不到文件 123.exe”并不是%a%的值,而是直接抛出start命令返回的错误信息
如果我想用变量保存命令执行错误时的返回的错误信息,我该怎么办呢? |