Batch file windows批处理文件在此行之后退出
在windows 10上,我的批处理文件始终在此行之后退出,且没有任何信息:Batch file windows批处理文件在此行之后退出,batch-file,window,Batch File,Window,在windows 10上,我的批处理文件始终在此行之后退出,且没有任何信息: cd ..\DOC\API && make html & cd ..\..\BUILDALL 我盯着这一行看了很长时间,弄不明白为什么这一行后面的行不能执行。我还尝试了下面的一行,它显示了正确的目录 cd ..\DOC\API && make html & cd ..\..\BUILDALL & dir 正如Stephen指出的,“make”是一个批处理文件,
cd ..\DOC\API && make html & cd ..\..\BUILDALL
我盯着这一行看了很长时间,弄不明白为什么这一行后面的行不能执行。我还尝试了下面的一行,它显示了正确的目录
cd ..\DOC\API && make html & cd ..\..\BUILDALL & dir
正如Stephen指出的,“make”是一个批处理文件,windows批处理文件在执行另一个批处理文件时终止,除非我们称之为批处理文件。所以这是正确的:
cd ..\DOC\API && call make html & cd ..\..\BUILDALL
和其他人一样,我一次又一次地检查目录,甚至用下面的一行来检查:
cd ..\DOC\API && make html & cd ..\..\BUILDALL & dir
即使最后一个dir
输出正确,批处理文件仍会因上述原因终止dir
无法正确显示,因为该行已全部解析
soembadhat从另一个角度进行了解释。只有当目录成功更改为相邻的
DOC\API
目录(相对于当前目录)时,Make
命令才会运行。与原始当前目录相邻的BUILDALL
目录只有在完成Make
命令后才会变为当前目录。目录列表将在API
或BUILDALL
中调用。如果没有目录列表,我的假设是,makehtml
尚未完成,或者调用当前目录时,DOC\API
与当前目录不相邻。如果显示BUILDALL
目录列表,并且批处理文件退出,则脚本解析器已读取文件结束命令或标记。如果列出了API
目录,则在原始当前目录旁边找不到您的BUILDALL
目录。你有什么目录清单?接下来的那一行是什么?Windows 10没有本机的MAKE
命令。那MAKE
-是MAKE.bat
?然后,您需要调用它才能返回到原始脚本。是的,确实如此。因为您在一行上完成了所有操作,这是作为一个整体进行解析的(在解析器不从make.bat
返回之前)。(嘿,这是一个批处理文件——为什么首先要将多个命令压入一行,而不是保持其可读性、可维护性和易于故障排除?)