从文件加载时遇到问题,我似乎无法找到问题,因为它在我的代码中的其他地方都有效。 无论如何这里是代码
set /p viewsave=
if exist save%viewsave%.txt (
set /p level=<save%viewsave%.txt
echo save%viewsave%
echo you are on level %level%
pause
它可以找到save%viewsave%并且我知道它知道level = 0因为当使用echo时它说
set /p level= 0<save1.txt
但是当我回音
时它不回应它you are on level %level%
它只是没有显示任何内容
这是一个以某种方式工作的例子
set /p saves=<savesnr.txt
echo you have %saves% saves
答案 0 :(得分:0)
您需要使用enabledelayedexpansion并替换:
echo you are on level %level%
使用:
echo you are on level !level!
延迟扩展将导致批处理文件中的变量 在执行时而不是在解析时扩展,这个选项是 使用
SETLOCAL EnableDelayedExpansion
命令启用。当延迟扩展有效时,可以使用变量引用变量
!variable_name!
(除了正常的%variable_name%
)执行批处理文件时,命令处理器(CMD.exe)将执行 解析完整的行和完整的复合命令。变量是 在线的命令之前,只用它们的值替换一次 被执行。