Board logo

标题: [文本处理] [已解决]echo生成的电源管理的批处理无法执行? [打印本页]

作者: pdp320921    时间: 2011-6-10 12:30     标题: [已解决]echo生成的电源管理的批处理无法执行?

  1. echo @echo off>56.bat
  2. echo setlocal EnableDelayedExpansion>>56.bat
  3. echo for /f "tokens=2 delims=()" %%%%i in ('powercfg -getactivescheme') do ( >>56.bat
  4. echo set a=%%%%i >>56.bat
  5. echo if "!a!" EQU "Balanced" powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c >>56.bat
  6. echo if "!a!" EQU "High performance" powercfg -setactive a1841308-3541-4fab-bc81-f71556f20b4a>>56.bat
  7. echo if "!a!" EQU "Power saver" goto end)>>56.bat
  8. echo :end>>56.bat
复制代码
上述语句得到的56.bat
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f "tokens=2 delims=()" %%i in ('powercfg -getactivescheme') do (
  4. set a=%%i
  5. if "!a!" EQU "Balanced" powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
  6. if "!a!" EQU "High performance" powercfg -setactive a1841308-3541-4fab-bc81-f71556f20b4a
  7. if "!a!" EQU "Power saver" goto end)
  8. :end
复制代码
为什么不能执行?不知到问题出在哪,求高手指教~~

ps:单独新建批处理可以正确执行~
作者: pdp320921    时间: 2011-6-10 16:52

1# pdp320921

发现问题主要出现在
  1. echo if "!a!" EQU "Balanced" powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c >>56.bat
复制代码
好像echo 后面接if 语句生成的文本语句不能够正确执行~
作者: pdp320921    时间: 2011-6-11 14:22

2# pdp320921


问题已解决~
作者: CrLf    时间: 2011-6-11 14:25

3# pdp320921


能否把出错原因贴出来呢?让大家学习下
作者: Batcher    时间: 2011-6-11 15:05

2# pdp320921


是因为行尾多了个空格?
作者: pdp320921    时间: 2011-6-12 22:34

5# Batcher

楼上正解!
作者: Batcher    时间: 2011-6-13 01:13

  1. >>56.bat echo if "!a!" EQU "Balanced" powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
复制代码





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