首页 > 解决方案 > =< 在 SET /P 和变量名之后的批处理文件中是什么意思?

问题描述

所以我的朋友给了我一个批处理文件,他想让我检查一切是否正确,但我不知道这里面有什么=<

: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

标签: batch-file

解决方案


该行将 YePathToVido.dat 的第一行设置为变量videopath


通常,set /p从用户那里获取输入并读入,直到它收到一个CRLF.
但是,<重定向来自指定文件的输入并将其发送到set /p命令。由于set /p读取直到收到 a CRLF,这有效地告诉命令从文件的开头读取到第一行的结尾。
附带说明一下,前两个if语句是不正确的,因为批处理比较了 两侧的所有内容==包括引号。这些行需要分别更改为if "%videopath%"==""if "%videopath%"=="C:\Vodie"


推荐阅读