找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21155|回复: 1

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

[复制链接]
发表于 2012-6-19 09:08:09 | 显示全部楼层 |阅读模式
本帖最后由 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命令返回的错误信息
如果我想用变量保存命令执行错误时的返回的错误信息,我该怎么办呢?

评分

参与人数 1PB +2 收起 理由
zqz0012005 + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-6-19 16:30:16 | 显示全部楼层
echo !a!>>1.txt
论坛搜索:预处理

评分

参与人数 1技术 +1 收起 理由
zqz0012005 + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 06:14 , Processed in 0.020779 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表