由于某些未知原因,我的批处理脚本中的以下代码
:subroutine
IF /I %firstPass%==true head -n 1 "%1%" >> "%exFilename%"
呈现为
IF /I true == true head -n 1 ""request_sql.csv"exFilename"
问题是重定向>>辍学,命令绊倒了。使用纯字符串来识别文件可以正常工作。会感谢您的帮助。
答案 0 :(得分:3)
first argument = "request_sql.csv"
vv
IF /I %firstPass%==true head -n 1 "%1%" >> "%exFilename%"
^......^
undefined variable
你得到了
IF /I true == true head -n 1 ""request_sql.csv"exFilename"
由于引用第一个参数的正确方法是%1
,没有关闭百分号,您应该使用
IF /I "%firstPass%"=="true" head -n 1 "%~1" >> "%exFilename%"
其中%~1
是没有引号的第一个参数的内容,因为您将它们包含在命令中