Board logo

标题: [文本处理] [已解决]两个批处理单独运行可以,为什么合并到一起就无法运行! [打印本页]

作者: yy521b    时间: 2017-9-18 20:59     标题: [已解决]两个批处理单独运行可以,为什么合并到一起就无法运行!

本帖最后由 yy521b 于 2017-9-19 11:18 编辑

批处理1内容及运行结果
  1. @Echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('wmic BIOS get manufacturer') do set /a n+=1 & if !n!==2  set one=%%i
  4. echo %one%
  5. pause
复制代码
运行结果
Hewlett-Packard
请按任意键继续. . .


批处理2内容及运行结果
  1. @Echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('wmic BIOS get status') do set /a n+=1 & if !n!==2  set two=%%i
  4. echo %two%
  5. pause
复制代码
运行结果
OK
请按任意键继续. . .


下面问题来了,我把两个for 写到一起,为什么只能运行上一条,下一条执行不了!! 如下
  1. @Echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('wmic BIOS get status') do set /a n+=1 & if !n!==2  set two=%%i
  4. for /f "delims=" %%i in ('wmic BIOS get manufacturer') do set /a n+=1 & if !n!==2  set one=%%i
  5. echo %two%
  6. echo %one%
  7. pause
复制代码
运行结果
OK
ECHO 处于关闭状态。
请按任意键继续. . .

第二个ECHO就不显示了!!!  请问 如果想让着两个批处理合成一个我要如何编写?? 谢谢
作者: Batcher    时间: 2017-9-18 21:30

for /f "delims=" %%i in ('wmic BIOS get manufacturer') do set /a m+=1 & if !m!==2  set one=%%i
作者: 1055367558    时间: 2017-9-18 22:10

直接用call调用试试看吧
作者: 不知道是谁    时间: 2017-9-19 00:41

变量重复了,重新指定一个变量名,如2楼,或者在执行第二条命令时设置变量为空

for /f ......
set n=
for /f ......
作者: yy521b    时间: 2017-9-19 11:26

哦,谢谢 ,变量错了,这么简单的地方忽略了! 谢谢!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2