我有一个脚本,可以读取文件的行数并将该数字设置到变量中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