[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]这段批处理代码为什么在输入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环境下运行
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
停下的理由千千万万,向前的理由一个就已足够!

(前面少了个空格
2

评分人数

TOP

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

第3行 "1"与(之间没有空格。
好像需要开启变量延迟

TOP

回复 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=
复制代码
本人刚接触,如果有错误,请告之,非常感谢。
1

评分人数

    • mstsc: 谢谢帮助技术 + 1

TOP

回复 2# gawk


    谢谢
停下的理由千千万万,向前的理由一个就已足够!

TOP

回复 3# apang


    谢谢
停下的理由千千万万,向前的理由一个就已足够!

TOP

返回列表