Ошибка при чтении первой строки текстового файла в командном файле - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь вынуть первую строку файла с именем 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 голосов
/ 25 февраля 2019

Для вопроса 1:
0 означает STDIN (стандартный ввод).Проверьте Стандартные потоки для концепции.
0 - это Файловый дескриптор для stdin.
Он автоматически добавляется пакетной системой и не является ошибкой..

Вопрос 2:
Ваш синтаксис выглядит нормально, и я проверил, работает ли он.Должна быть другая ошибка.
Однако вы можете изменить ее на другой способ:

for /f "delims=" %%i in (id.txt) do set "requestid=%%i" & goto :endfor
:endfor
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...