我有一个如下所示的 settings.txt 文件:
on
off
在批处理文件的开头,会使用这些设置填充各种变量值,例如将 %AutoTransfer%
设置为 on、将 AutoViewLog
设置为 on 等。每当打开/关闭其中一项设置时,我都会调用 :WriteSettings
函数来尝试执行此操作:
echo %AutoTransfer% > settings.txt
echo %AutoViewLog% >> settings.txt
但是命令解释器会自行打开或关闭 echo。我尝试过 !AutoTransfer!
和 (!AutoTransfer!)
仍然没有成功。当然,我可以将其更改为使用启用/禁用值而不是开/关值,但这会搞乱我的菜单,因为这些单词很短。如果我将值设置为 1 表示启用,0 表示禁用,我必须为主菜单编写更多代码(一堆“if”语句,以在变量为 1 时回显“on”、“off” “当它为0时)。
我当前的解决方案可以工作...它会将值分配给“is on”而不是“on”,并且只需将“is”一词作为变量值的一部分,以便我可以使用'AutoTransfer %AutoTransfer%'
在菜单上显示“自动传输已开启”
。但这感觉就像一个管道胶带解决方案,为了纯粹的学习美德,我想知道是否有一个优雅的解决方案,或者是否所有解决方案都像那样愚蠢/蹩脚/丑陋,甚至可能更糟。
我也不敢相信我似乎是第一个问这个问题的人。我花了 20 分钟寻找其他问过这个问题的人...找不到一个。我真的是第一个想要将 super 基本的“开/关”值存储/读取/回显到设置文件和屏幕的人吗?或者我只是第一个太笨而无法弄清楚的人?
最佳答案
使用非空格是执行此操作的常用方法,例如:
echo.on>>settings.txt
这可以防止 on
被视为 echo
命令而不是要回显的字符串。
请注意,在 on
和输出重定向之间没有空格。如果您将空格放在那里,它实际上会添加到文件中,这可能不是您想要的。
关于batch-file - 在批处理文件中,如何将单词 "on"回显到文本文件而不打开回显?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75037488/