Что означает = <в пакетном файле после SET / P и имени переменной? - PullRequest
1 голос
/ 29 мая 2020

Итак, мой друг дал мне командный файл, он хотел, чтобы я проверил, все ли правильно, но я понятия не имею, что здесь делает =<.

:artthou_54
mode 50,20
cls
set videopath=0
title Art thou sure?
set /p videopath=<\DataTron\Ainstro\YePathToVido.dat
if %videopath%=="" echo Video Path = %videopath%
if %videopath%=="C:\Vodie" echo It seems you have the same path as the creator
set /p videopath="Would you like to open %VideoPath%? (Y/N): "
mode 50,20
if %videopath%==Y goto videohole-b
if %videopath%==N goto videohole
if %videopath%==y goto videohole-b
if %videopath%==n goto videohole
if %videopath%==back goto videohole-c
if %videopath%==exit exit
goto Art-thou-unsure

1 Ответ

3 голосов
/ 29 мая 2020

Эта строка устанавливает первую строку YePathToVido.dat в переменную videopath.


Обычно set /p получает ввод от пользователя и считывает его, пока не получит CRLF.
Однако < перенаправляет ввод из указанного файла и отправляет его команде set /p. Поскольку set /p читает до тех пор, пока не получит CRLF, это фактически указывает команде на чтение от начала файла до конца первой строки.
Кстати, эти первые два оператора if неверны, потому что пакет сравнивает все на обеих сторонах ==, , включая кавычки . Эти строки необходимо изменить на if "%videopath%"=="" и if "%videopath%"=="C:\Vodie" соответственно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...