标题: [其他] [已解决]这段批处理代码为什么在输入1后就消失了呢? [打印本页]
作者: mstsc 时间: 2012-4-9 23:40 标题: [已解决]这段批处理代码为什么在输入1后就消失了呢?
- @echo off
- set /p num=请输入要执行的操作:
- if "%num%"=="1"(
- set /p a=请输入内容:
- set /p b=请输入文件名:
- set /p c=请输入复制后的文件名:
- echo %a% >%b%.txt
- copy %b%.txt h:\book\%c%.txt
- )
- pause
- set a=
- set b=
- set c=
- 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之前 最好判断一下。
完整代码:- @echo off & setlocal EnableDelayedExpansion
- set /p num=请输入要执行的操作:
- if "%num%"=="1" (
- set /p a=请输入内容:
- set /p b=请输入文件名:
- set /p c=请输入复制后的文件名:
- echo !a!>!b!.txt
- if not exist h:\book md h:\book
- copy !b!.txt h:\book\!c!.txt
- )
- pause
- set a=
- set b=
- set c=
- 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 |