【发布时间】:2013-05-08 22:13:42
【问题描述】:
我目前正在制作一个程序,以使用存储在 .txt 文件中的预设信息来更改程序执行的内容。但是,我遇到以下代码段无法正常运行的问题。
@echo off
setlocal enabledelayedexpansion
:load
cls
if exist settings (
cd settings
set /p welcomemessage=<"launch message".txt
set /p color=<color.txt
cd..
color !color!
if !welcomemessage!==false (
goto command
)
)
...
:command
...
第二个 if (if !welcomemessage!==false...) 没有正常运行,因为它没有按应有的方式跳到命令。我找到了一种通过将其移到主 if 块之外并替换它来使其工作的方法! %,但我想知道出了什么问题。
颜色功能正常运行,如果我回显welcomemessage的值,即使在第一个if块内,它也会显示“false”,尽管第二个if仍然没有激活。
【问题讨论】:
-
我猜这是你文件的内容。如果您需要帮助,我们将需要解释它的代码。
-
@ChrisCooney 这是 Windows shell。
-
这是给我带来麻烦的代码段;它正在解释的两个文件只是 .txt 文件,其中一个是标准颜色集格式(例如“47”),另一个是“真”或“假”。每个都位于设置文件夹中,该文件夹与运行此代码段的 .bat 文件位于同一目录中。
-
@Endoro 是的;我可以回声!欢迎留言!在 set /p welcomemessage=
-
取决于文本文件的确切内容,!welcomemessage!可能在一侧或另一侧有空格,或引号等。尝试
echo -!welcomemessage!-- 请注意每一侧的-- 您试图查看其中是否有空格或其他字符。