Batch file 批处理文件:将变量输出到文本文件
我想将变量输出到文本文件。我已经在我的代码中完成了这项工作,但在if语句中有一个输出无法工作Batch file 批处理文件:将变量输出到文本文件,batch-file,if-statement,echo,text-files,Batch File,If Statement,Echo,Text Files,我想将变量输出到文本文件。我已经在我的代码中完成了这项工作,但在if语句中有一个输出无法工作 if not exist "%TuningLog%" ( set Title=Tuning Parameters Saving Log set LogTitle=--------- %Title% --------- echo %LogTitle%>> "%TuningLog%" ) 它要做的就是首先检查日志文件是否存在,如果它不存在,那么我想在第一个实例中附加一个
if not exist "%TuningLog%" (
set Title=Tuning Parameters Saving Log
set LogTitle=--------- %Title% ---------
echo %LogTitle%>> "%TuningLog%"
)
它要做的就是首先检查日志文件是否存在,如果它不存在,那么我想在第一个实例中附加一个标题
但我在日志文件中得到的只是“echo已关闭”。如果我不使用变量,只在其中放置文本,那么它就可以正常工作
有人能发现这个问题吗?感谢您的阅读和任何帮助
更新:
我把代码改成了。我对延迟扩展不太了解,但我试过了,它碰巧起了作用
if not exist "%TuningLog%" (
setlocal enabledelayedexpansion
set Title=Tuning Parameters Saving Log
set LogTitle=--------- !Title! ---------
echo !LogTitle!>> "!TuningLog!"
endlocal
)
如果有人能提供第一次尝试失败的原因,那么请告知本帖,以便学习。谢谢大家! 因为或早期扩张。在块开始时,变量将被其值替换。此时,它仍然未定义,因此为空。若你们打开了echo,你们可以在屏幕上看到这一切。如果您像在第二个示例中那样启用延迟扩展,它只会在使用时进行扩展,因此它的工作方式与您期望的变量在“真实”编程语言中的工作方式相同。启用延迟扩展 使变量以简单语言展开它使系统处理变量的值,而不是变量名本身