当前位置:  开发笔记 > Android > 正文

为什么即使标签存在,也会抛出"系统找不到指定的批处理标签"?

如何解决《为什么即使标签存在,也会抛出"系统找不到指定的批处理标签"?》经验,为你挑选了5个好方法。

在Windows XP中运行批处理文件时,我发现了随机出现的错误消息:

系统找不到指定name_of_label的批处理标签

当然标签存在.是什么导致这个错误?



1> VonC..:

实际上,您需要2个条件才能实现:

批处理文件不得使用CRLF行结尾

您跳转到的标签必须跨越块边界(与and相反:end标签,它只是脚本末尾的快捷方式)

看到.系统找不到指定的批次标签和Batch-as-batch-can!


有这个问题的蚂蚁批处理文件随eclipse一起提供并从MSVC调用 - 更改行结尾都是固定的,谢谢你.

2> Marshal..:

我以前遇到过同样的问题.但是,根本原因根本不是CRLF.这是因为在脚本中我执行了一个外部程序,如Ant,但没有放入CALLAnt之前.因此,请确保CALL批处理脚本中使用的每个外部程序.


在Windows中,您可能正在运行`.bat`并且没有意识到它!我刚刚了解到运行`mvn`实际上执行了一个批处理文件`mvn.cmd`,并且在我运行`mvn`的任何时候试图理解为什么我的脚本在出现此错误时失败了一个小时.

3> 小智..:

这是问题以及如何解决它.问题是DOS批处理cmd程序中的错误或功能.首先是明确的问题陈述.如果您的DOS批处理文件包含目标标签,例如":dothis",并且在标签的末尾没有空格,那么如果行结尾是UNIX行结尾,则批处理文件将不起作用.这意味着您必须先在文件上运行unix2dos才能使用它.

根本原因是DOS命令行处理器(shell程序),将UNIX行尾字符作为标签的一部分.由于转到零件从不使用它作为标签,因此从未找到它,因为这样的标签确实不存在.解决方案是在每个目标标签的末尾添加一个额外的空间,甚至更好地在每一行.现在UNIX的行尾不会发挥作用,因为空间充当分隔符并且一切正常.



4> Slimak..:

如果批处理文件具有unix行结尾(行分隔符),则有时会发生这种情况.

只是unix2dos它和问题应该解决.



5> 小智..:

您还应该确保在调用其他脚本时使用CALL,而不是在调用者的环境中调用它们.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有