bat批处理中,如何将一个执行结果保存到自定义变量中

daiweiru 2014-09-04 02:35:28
CStdioFile batFile(Path+"myarmwsd.bat",CFile::modeWrite |CFile::typeText|CFile::modeCreate );
batFile.WriteString("echo off\r\n");
batFile.WriteString("echo Hold down download switch and pulse reset switch.\r\n");
batFile.WriteString("echo on\r\n");
batFile.WriteString("1.exe armwsderase.ini af=");
batFile.WriteString(m_7060HexPath);
batFile.WriteString(" aa=y ap=00 cp="+Com+" cb="+Baud+" fe=y fp=n fv=n fh=n\r\n");
batFile.WriteString("@echo off\r\n");
batFile.WriteString("if errorlevel 9 goto nine\r\n");
batFile.WriteString("if errorlevel 8 goto eight\r\n");
batFile.WriteString("if errorlevel 7 goto seven\r\n");
batFile.WriteString("if errorlevel 6 goto six\r\n");
batFile.WriteString("if errorlevel 5 goto five\r\n");
batFile.WriteString("if errorlevel 4 goto four\r\n");
batFile.WriteString("if errorlevel 3 goto three\r\n");
batFile.WriteString("if errorlevel 2 goto two\r\n");
batFile.WriteString("if errorlevel 1 goto one\r\n");
batFile.WriteString("if errorlevel 0 goto zero\r\n");
batFile.WriteString("goto six\r\n");
batFile.WriteString(":nine\r\n");
batFile.WriteString("echo Protection Error\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":eight\r\n");
batFile.WriteString("echo Verify Error\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":seven\r\n");
batFile.WriteString("echo Write Error\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":six\r\n");
batFile.WriteString("echo Undefined Error\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":five\r\n");
batFile.WriteString("echo Erase Error\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":four\r\n");
batFile.WriteString("echo Communication Error\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":three\r\n");
batFile.WriteString("echo Memory Range Error\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":two\r\n");
batFile.WriteString("echo File Error\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":one\r\n");
batFile.WriteString("echo Too many retries\r\n");
batFile.WriteString("goto end\r\n");
batFile.WriteString(":zero\r\n");
batFile.WriteString("echo Success\r\n");
batFile.WriteString(":end \r\n");
batFile.WriteString("pause \r\n");
batFile.WriteString("exit\r\n");
batFile.Close();
system("start myarmwsd.bat");


如上代码,我怎么样在批处理执行到batFile.WriteString("echo Success\r\n");的时候,将成功的结果赋值给BOOL变量bRet,bRet=1,在batFile.WriteString("echo File Error\r\n");的时候赋值bRet = 0;急求!!!!
...全文
1031 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
daiweiru 2014-09-12
  • 打赏
  • 举报
回复
引用 5 楼 ljc007 的回复:
CStdioFile batFile(Path+"myarmwsd.bat",CFile::modeWrite |CFile::typeText|CFile::modeCreate ); batFile.WriteString("echo off\r\n"); batFile.WriteString("echo Hold down download switch and pulse reset switch.\r\n"); batFile.WriteString("echo on\r\n"); batFile.WriteString("1.exe armwsderase.ini af="); batFile.WriteString(m_7060HexPath); batFile.WriteString(" aa=y ap=00 cp="+Com+" cb="+Baud+" fe=y fp=n fv=n fh=n\r\n"); batFile.WriteString("@echo off\r\n"); batFile.WriteString("if errorlevel 9 goto nine\r\n"); batFile.WriteString("if errorlevel 8 goto eight\r\n"); batFile.WriteString("if errorlevel 7 goto seven\r\n"); batFile.WriteString("if errorlevel 6 goto six\r\n"); batFile.WriteString("if errorlevel 5 goto five\r\n"); batFile.WriteString("if errorlevel 4 goto four\r\n"); batFile.WriteString("if errorlevel 3 goto three\r\n"); batFile.WriteString("if errorlevel 2 goto two\r\n"); batFile.WriteString("if errorlevel 1 goto one\r\n"); batFile.WriteString("if errorlevel 0 goto zero\r\n"); batFile.WriteString("goto six\r\n"); batFile.WriteString(":nine\r\n"); batFile.WriteString("echo Protection Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":eight\r\n"); batFile.WriteString("echo Verify Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":seven\r\n"); batFile.WriteString("echo Write Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":six\r\n"); batFile.WriteString("echo Undefined Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":five\r\n"); batFile.WriteString("echo Erase Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":four\r\n"); batFile.WriteString("echo Communication Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":three\r\n"); batFile.WriteString("echo Memory Range Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":two\r\n"); batFile.WriteString("echo File Error\r\n"); batFile.WriteString("set bRet=0\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":one\r\n"); batFile.WriteString("echo Too many retries\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":zero\r\n"); batFile.WriteString("echo Success\r\n"); batFile.WriteString("set bRet=1\r\n"); batFile.WriteString(":end \r\n"); batFile.WriteString("pause \r\n"); batFile.WriteString("exit\r\n"); batFile.Close(); system("start myarmwsd.bat");
大神,我像你说的这样,在执行到Success的时候,bRet确实被赋成1,但是我在这个程序之后使用的时候,发现bRet还是0 ,这是为什么?
daiweiru 2014-09-11
  • 打赏
  • 举报
回复
引用 5 楼 ljc007 的回复:
。。。。
且我要加的这个命令,不是要顺序执行的,是1.exe执行的同时一起执行的,我的目的是1.exe一执行,就马上发 Out32(LPTAddr, 0xB8);//切合继电器 Out32(LPTAddr, 0x80);//复位 Sleep(500); Out32(LPTAddr, 0xB8);//断开继电器 这四条命令,请问怎么做?万分感谢!!!!
daiweiru 2014-09-11
  • 打赏
  • 举报
回复
引用 5 楼 ljc007 的回复:
。。。
大神,这个问题解决了,但是我现在想要在 batFile.WriteString(" aa=y ap=00 cp="+Com+" cb="+Baud+" fe=y fp=n fv=n fh=n\r\n"); batFile.WriteString("@echo off\r\n");这两句后边加四句通信命令: Out32(LPTAddr, 0xB8);//切合继电器 Out32(LPTAddr, 0x80);//复位 Sleep(500); Out32(LPTAddr, 0xB8);//断开继电器 我该怎么加才管用?
daiweiru 2014-09-05
  • 打赏
  • 举报
回复
引用 3 楼 akuma8848 的回复:
读取屏幕,你这批处理不在c++什么下写的么。 纯bat下的 【技巧】批处理,Bat中获取用户输入的指定内容 http://lcx.cc/?i=812
那我应该把这句话放在程序的哪个部分?
ljc007 2014-09-05
  • 打赏
  • 举报
回复
CStdioFile batFile(Path+"myarmwsd.bat",CFile::modeWrite |CFile::typeText|CFile::modeCreate ); batFile.WriteString("echo off\r\n"); batFile.WriteString("echo Hold down download switch and pulse reset switch.\r\n"); batFile.WriteString("echo on\r\n"); batFile.WriteString("1.exe armwsderase.ini af="); batFile.WriteString(m_7060HexPath); batFile.WriteString(" aa=y ap=00 cp="+Com+" cb="+Baud+" fe=y fp=n fv=n fh=n\r\n"); batFile.WriteString("@echo off\r\n"); batFile.WriteString("if errorlevel 9 goto nine\r\n"); batFile.WriteString("if errorlevel 8 goto eight\r\n"); batFile.WriteString("if errorlevel 7 goto seven\r\n"); batFile.WriteString("if errorlevel 6 goto six\r\n"); batFile.WriteString("if errorlevel 5 goto five\r\n"); batFile.WriteString("if errorlevel 4 goto four\r\n"); batFile.WriteString("if errorlevel 3 goto three\r\n"); batFile.WriteString("if errorlevel 2 goto two\r\n"); batFile.WriteString("if errorlevel 1 goto one\r\n"); batFile.WriteString("if errorlevel 0 goto zero\r\n"); batFile.WriteString("goto six\r\n"); batFile.WriteString(":nine\r\n"); batFile.WriteString("echo Protection Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":eight\r\n"); batFile.WriteString("echo Verify Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":seven\r\n"); batFile.WriteString("echo Write Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":six\r\n"); batFile.WriteString("echo Undefined Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":five\r\n"); batFile.WriteString("echo Erase Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":four\r\n"); batFile.WriteString("echo Communication Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":three\r\n"); batFile.WriteString("echo Memory Range Error\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":two\r\n"); batFile.WriteString("echo File Error\r\n"); batFile.WriteString("set bRet=0\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":one\r\n"); batFile.WriteString("echo Too many retries\r\n"); batFile.WriteString("goto end\r\n"); batFile.WriteString(":zero\r\n"); batFile.WriteString("echo Success\r\n"); batFile.WriteString("set bRet=1\r\n"); batFile.WriteString(":end \r\n"); batFile.WriteString("pause \r\n"); batFile.WriteString("exit\r\n"); batFile.Close(); system("start myarmwsd.bat");
Anymore 2014-09-04
  • 打赏
  • 举报
回复
读取屏幕,你这批处理不在c++什么下写的么。 纯bat下的 【技巧】批处理,Bat中获取用户输入的指定内容 http://lcx.cc/?i=812
daiweiru 2014-09-04
  • 打赏
  • 举报
回复
引用 1 楼 akuma8848 的回复:
char str[1]; scanf("%c", &str);
这是啥意思?
Anymore 2014-09-04
  • 打赏
  • 举报
回复
char str[1]; scanf("%c", &str);

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧