我一直收到语法错误投诉,但我无法找到原因:
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%
答案 0 :(得分:1)
在没有信息的情况下疯狂猜测:变量last
包含空格或某些“毒药”字符(对cmd
重要的字符)。
解决:将目标文件设置为"%a%"
而不是%a%
。封闭引号确保批处理将 Space 解释为普通字符,而不是分隔符。
要为变量指定字符串,请尝试使用set "string=variable text"
- 封闭引号可确保该行上的任何尾随空格不包含在指定的值中。
另请注意,字符串集语句中=
两侧的任何空格都将包含在变量名或分配的字符串中。
另请注意,您的设计似乎存在问题 - 如果您的列表中有多个“姓氏” - John Doe
和Jane 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"