windows - @echo 在命令中关闭

标签 windows cmd echo

我正在尝试编写 BAT 脚本,并且我有以下内容:

@echo off
REM Comments here
SETLOCAL ENABLEDELAYEDEXPANSION
set PROG_ROOT=C:\Prog
set ONE=1

echo 1>> %PROG_ROOT\test.txt
echo %ONE%>> %PROG_ROOT\test.txt

for /f "tokens=*" %%f in (folders.txt) do (
    echo %%f>> %PROG_ROOT\test.txt
)

ENDLOCAL

我的 folders.txt 包含数字“5”。

我的 test.txt 输出是

ECHO is off
ECHO is off
5

我不明白为什么前两行输出是“ECHO is off”,而第三行打印正确。如何打印正确的输出?

预计到达时间:我试过了

echo 1>> %PROG_ROOT\test.txt
echo %ONE% >> %PROG_ROOT\test.txt

而且我能够打印

ECHO is off
1

但是,我不需要打印数字后的尾随空格。

最佳答案

1>(更普遍的是 n> 用于任何数字 n)被解释为重定向,因此 echo 1 >>cmd 中显示为不带参数的 echo。不带参数的 echo 将打印当前的 echo 状态(此处,ECHO 已关闭)。

要修复,请使用 ^ 字符转义整数:

echo ^1>> %PROG_ROOT\test.txt

关于windows - @echo 在命令中关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12505754/

相关文章:

windows - 剪贴板是否在 Windows 下的桌面之间共享?

.net - 在不停止服务的情况下更新 dll

java - 如何使用 Maven/testng 将参数发送到方法?

java - 创建一个发送到后台并关闭的 bat 文件(1 个文件)

batch-file - 批处理脚本命令自动停止批处理脚本

linux - echo -e 转义序列?

c++ - 使用 Visual C++ 编译器在 Windows 上构建库时如何正确设置目标操作系统版本

c++ - Windows:基于事件的重叠 IO 与 IO 完成端口,真实世界性能

bash - 开始时使用 echo -n 命令的有趣行为

python - Python 中的回显单词