管道 + 一位数字不回显

管道 + 一位数字不回显

我有一个脚本,可以读取文件的行数并将该数字设置到变量中ROWCOUNT

因此,为了将像“F|5”这样的页脚添加到带有ROWCOUNT减号标题的文件 file.txt 中,我进行了减法并使用 echo 将其发送到文件,但在该行中,我不确定哪部分失败了,因为“^|”应该打印管道,但在屏幕上它只显示 F| 并且生成的文件是空的。

当 ROWCOUNT > 10 时,这也不再是问题

@echo off
set ROWCOUNT=7
set /A TT=ROWCOUNT-1
echo F^|%TT%>>C:\Users\file.txt
pause

即使关闭 echo,这也是图形输出,并且 file.txt 是空的:

F|
Press any key to continue . . .

答案1

重定向前的数字表示文件句柄。当您使用重定向(如)时>>someFile,它实际上意味着1>>someFile,其中 1 表示 stdout。还有 2 表示 stderr,0 表示 stdin。其他文件句柄可以由您的代码定义。

您的代码在重定向之前有一个数字,因此它被解释为未定义的文件句柄。

解决方法就是将重定向移到前面。

>>C:\Users\file.txt echo F^|%TT%

另一种选择是使用括号

(echo F^|%TT%)>>C:\Users\file.txt

相关内容