Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件:将变量输出到文本文件_Batch File_If Statement_Echo_Text Files - Fatal编程技术网

Batch file 批处理文件:将变量输出到文本文件

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语句中有一个输出无法工作

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,你们可以在屏幕上看到这一切。如果您像在第二个示例中那样启用延迟扩展,它只会在使用时进行扩展,因此它的工作方式与您期望的变量在“真实”编程语言中的工作方式相同。

启用延迟扩展 使变量以简单语言展开它使系统处理变量的值,而不是变量名本身