batch-file - 在批处理文件中,如何将单词 "on"回显到文本文件而不打开回显?

标签 batch-file echo

我有一个如下所示的 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/

相关文章:

php - PHP IF 语句中的 echo 变量和 HTML

java - Maven 将多个 jar 导入一个依赖项

windows - Stream 3 句柄重定向导致输出溢出

python - 批量删除文件名中的字符

bash - 字符串包含字符 bash

php - 在 IMG 标签中回显图像路径

windows - 使用批处理文件打开 Internet 选项,打开连接选项卡,按确定

excel - CMD/批量获取打开应用程序的句柄?

php echo 无需转义引号

php - 在 HTML 按钮上回显 PHP 数组值的 JavaScript 警报?