关于批处理的问题?高手请进!

来源:百度知道 编辑:UC知道 时间:2024/09/25 16:34:27
@echo off
echo 按1并回车创建一个文本文件
set /p num=请输入:
if "%num%"=="1" (
set /p courcepath=请输入任意数字:
set /p sitename=请输入任意数字:
echo 我输入了%courcepath%和%sitename%对不对 >d:\我的输入.txt
)
pause

我知道你的问题了,你的问题是d:\我的输入.txt 文件中没有显示你输入的那两个值,对不对?
原因:如果用在if()或&&()或do()等等这些括号里面的变量都属于延迟变量,如果再次在括号里面调用,是没有值的,所以显示不了,只有在()括号外部调用才会正常显示.

解决方法:
1.需要开启延迟变量,加一句代码:setlocal enabledelayedexpansion
2.do()里面调用变量表示方法是!courcepath!,而不是%courcepath%

修改后代码:
@echo off
setlocal enabledelayedexpansion
echo 按1并回车创建一个文本文件
set /p num=请输入:
if "%num%"=="1" (
set /p courcepath=请输入任意数字:
set /p sitename=请输入任意数字:
echo 我输入了!courcepath!和!sitename!对不对 >d:\我的输入.txt
)
pause

你的问题呢?