[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理命令结果赋值给变量,但写入文本时为何不正确?

本帖最后由 YJDP 于 2012-6-29 14:17 编辑

http://www.bathome.net/thread-9873-1-1.html
此帖13楼的代码
  1. @echo off
  2. set a=str
  3. set a=%a:str=&hostname%
  4. echo %a%
  5. pause
复制代码
我改成:
  1. @echo off
  2. set a=str
  3. set a=%a:str=&start 123.exe 2>&1%
  4. echo 这是运行中A的值%a%
  5. echo 这是写入TXT中a的值%a%>>1.txt
  6. 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命令返回的错误信息
如果我想用变量保存命令执行错误时的返回的错误信息,我该怎么办呢?
1

评分人数

    • zqz0012005: 感谢给帖子标题标注[已解决]字样PB + 2

echo !a!>>1.txt
论坛搜索:预处理
1

评分人数

TOP

返回列表