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

问题描述 投票:0回答:1

我试图取出一个名为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
batch-file
1个回答
0
投票

问题1: 0意味着STDIN(标准输入)。检查Standard streams的概念。 0File descriptorstdin。 它由批处理系统自动添加,并不是错误。

问题2: 你的语法似乎没问题,我测试了它的工作原理。必须有其他错误。 但是,您可以将其更改为另一种方式:

for /f "delims=" %%i in (id.txt) do set "requestid=%%i" & goto :endfor
:endfor
© www.soinside.com 2019 - 2024. All rights reserved.