Board logo

标题: [其他] [已解决]这段批处理代码为什么在输入1后就消失了呢? [打印本页]

作者: mstsc    时间: 2012-4-9 23:40     标题: [已解决]这段批处理代码为什么在输入1后就消失了呢?

  1. @echo off
  2. set /p num=请输入要执行的操作:
  3. if "%num%"=="1"(
  4. set /p a=请输入内容:
  5. set /p b=请输入文件名:
  6. set /p c=请输入复制后的文件名:
  7. echo %a% >%b%.txt
  8. copy %b%.txt h:\book\%c%.txt
  9. )
  10. pause
  11. set a=
  12. set b=
  13. set c=
  14. set num=
复制代码
在xp环境下运行
作者: gawk    时间: 2012-4-10 00:07

(前面少了个空格
作者: apang    时间: 2012-4-10 00:10

本帖最后由 apang 于 2012-4-10 00:22 编辑

第3行 "1"与(之间没有空格。
好像需要开启变量延迟
作者: xiaopo    时间: 2012-4-10 13:13

回复 1# mstsc


    问题:
1, 需要开启变量延迟。
2,在if后的第一个(之前,请敲入一个空格。
3,你如果目标目录不存在,会产生错误,即如果你没有h盘符,或者h盘下没有book文件夹,会提示错误。所以copy之前 最好判断一下。
完整代码:
  1. @echo off & setlocal EnableDelayedExpansion
  2. set /p num=请输入要执行的操作:
  3. if "%num%"=="1" (
  4.   set /p a=请输入内容:
  5.   set /p b=请输入文件名:
  6.   set /p c=请输入复制后的文件名:
  7.   echo !a!>!b!.txt
  8.   if not exist h:\book md h:\book
  9.   copy !b!.txt h:\book\!c!.txt
  10. )
  11. pause
  12. set a=
  13. set b=
  14. set c=
  15. set num=
复制代码
本人刚接触,如果有错误,请告之,非常感谢。
作者: mstsc    时间: 2012-4-10 15:00

回复 2# gawk


    谢谢
作者: mstsc    时间: 2012-4-10 15:00

回复 3# apang


    谢谢




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