在批处理文件中读取文本文件的第一行时出错

时间:2019-02-25 10:29:55

标签: batch-file

我试图取出名为id.txt的文件的第一行并将其设置为变量。

Set /p requestid=<id.txt

哪个给我一个错误,如下:

Set /p requestid=0<id.txt 
Requestida was unexpected at this time.

有人可以建议我吗?

  1. 为什么左移运算符前面为零
  2. 未在id.txt文件的第一行设置变量的原因是什么。

即使我在cmd上命中了相同的命令,它也能正常工作,但在批处理文件中,它却被卡在上面,并出现上述错误。

这是完整的脚本:

cd C:\scripts\
dir .csr;.pem /B >csr.txt
for /f "tokens=*" %%a in (C:\scripts\csr.txt) do call :next

:next
If "%1"=="" goto end
certReq -submit -config machine_name -attrib "CertificateTemplate:XYZ" %1 %1.cer >id.txt
set /p Requid=<C:\scripts\id.txt
for /f "tokens=2 delims= " %a in ("%Requid%") do set Requid1=%a
Certutil -resubmit %Requid1%

:end

1 个答案:

答案 0 :(得分:0)

问题1:
EnableCrossPartitionQuery的意思是0(标准输入)。检查Standard streams中的概念。
STDIN0的{​​{3}}。
它是由批处理系统自动添加的,这不是错误。

问题2:
您的语法似乎还可以,并且我测试了它的功能。肯定还有其他错误。
但是,您可以将其更改为另一种方式:

stdin