Windows .bat文件0 <不确定0的来源

时间:2018-11-03 07:53:53

标签: mysql windows batch-file batch-processing

我的Windows .bat文件有一个奇怪的问题,在执行时<前要有一个0。我不知道它从哪里得到的。以下是批处理文件date1.bat的内容

set mysql="C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe"
set progDir="D:\BigData\14.Nodejs\3.Firebase"
set dataDir=D:\BigData\14.Nodejs\3.Firebase\data

%mysql% -ualpha -pbeta test < "%dataDir%\LatestData - Q -201811 - INSERT DMLs.sql"

我要提到的问题排在了

%mysql% -ualpha -pbeta test < "%dataDir%\LatestData - Q -201811 - INSERT DMLs.sql"

下面是输出

D:\BigData\14.Nodejs\3.Firebase>date1

D:\BigData\14.Nodejs\3.Firebase>set mysql="C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe"

D:\BigData\14.Nodejs\3.Firebase>set progDir="D:\BigData\14.Nodejs\3.Firebase"

D:\BigData\14.Nodejs\3.Firebase>set dataDir=D:\BigData\14.Nodejs\3.Firebase\data

D:\BigData\14.Nodejs\3.Firebase>"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -ualpha -pbeta test  0<"D:\BigData\14.Nodejs\3.Firebase\data\LatestData - Q -201811 - INSERT DMLs.sql"

最后一次看到的是“ 0 <”,不确定从何处获得0。有没有办法避免它。

我只是试图通过Windows批处理在多个文件中运行DML。

2 个答案:

答案 0 :(得分:1)

您正在查看的是解释器如何评估代码的命令回显。

  • 句柄0是Stdin,import java.time.LocalDate import shapeless.LabelledGeneric import shapeless.record._ case class BaseModel(id: String, createdBy: String, attr1: Option[String] = None, attr2: Option[Int] = None, attr3: Option[LocalDate] = None) case class BaseModel1(id: String, createdBy: String, attr2: Option[Int] = None, attr3: Option[LocalDate] = None) val bm = BaseModel( id = "cff4545gvgf", createdBy = "John Doe", attr2 = Some(42), attr3 = Some(LocalDate.parse("2018-11-03")) ) // BaseModel(cff4545gvgf,John Doe,None,Some(42),Some(2018-11-03)) val hlist = LabelledGeneric[BaseModel].to(bm) val hlist1 = hlist - 'attr1 val bm1 = LabelledGeneric[BaseModel1].from(hlist1) // BaseModel1(cff4545gvgf,John Doe,Some(42),Some(2018-11-03)) 重定向被解释为来自句柄<
  • 句柄1是标准输出,0<重定向被解释为从句柄>或到句柄1>
  • 句柄2是Stderr,>&1重定向被解释为从句柄2>或到句柄2>

句柄3至9是批处理文件特有的辅助句柄。

答案 1 :(得分:1)

0表示标准输入。 0< myfile表示将myfile的内容发送到标准输入< myfile0< myfile的简写。 0无害,您不需要摆脱它。