我试图取出一个名为id.txt
的文件的第一行并将其设置为变量。
Set /p requestid=<id.txt
这给我一个错误如下:
Set /p requestid=0<id.txt
Requestida was unexpected at this time.
有谁能建议我这个。
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
意味着STDIN
(标准输入)。检查Standard streams的概念。
0
是File descriptor的stdin
。
它由批处理系统自动添加,并不是错误。
问题2: 你的语法似乎没问题,我测试了它的工作原理。必须有其他错误。 但是,您可以将其更改为另一种方式:
for /f "delims=" %%i in (id.txt) do set "requestid=%%i" & goto :endfor
:endfor