语法错误Problam批处理

时间:2014-04-01 23:10:36

标签: batch-file

我一直收到语法错误投诉,但我无法找到原因:

cls
set a=.\Data\%Last%.ejl
echo ID: %id% > %a%
echo Last Name: %Last% >> %a%
echo First Name: %First% >> %a%
echo Gender:%Gender% >> %a%
echo Birthday:%Birthday% >> %a%
echo Relation: >> %a%
echo %Relation% >> %a%

2 个答案:

答案 0 :(得分:1)

在没有信息的情况下疯狂猜测:变量last包含空格或某些“毒药”字符(对cmd重要的字符)。

解决:将目标文件设置为"%a%"而不是%a%。封闭引号确保批处理将 Space 解释为普通字符,而不是分隔符。

要为变量指定字符串,请尝试使用set "string=variable text" - 封闭引号可确保该行上的任何尾随空格不包含在指定的值中。

另请注意,字符串集语句中=两侧的任何空格都将包含在变量名或分配的字符串中。

另请注意,您的设计似乎存在问题 - 如果您的列表中有多个“姓氏” - John DoeJane Doe会发生什么?

答案 1 :(得分:1)

如果%last%不包含各种奇怪的字符,这可能对您有用 某些外来字符在默认代码页中无法正确呈现。

cls
(
   echo ID: %id%
   echo Last Name: %Last%
   echo First Name: %First%
   echo Gender:%Gender%
   echo Birthday:%Birthday%
   echo Relation:
   echo %Relation%
) >".\Data\%Last%.ejl"