如果我们有一个批处理文件被重定向到一个日志像这样:有没有办法检查批处理文件中的重定向?
C:\Testing\Example.bat > C:\Testing\Example.log
有什么办法里面的批处理文件,以确定是否有一个标准输出重定向发生在一个日志文件?
基本上我的批处理文件需要传递给它的三个参数。如果省略参数,批处理文件就会像常规DOS命令那样打印使用示例,并会抛出“暂停”,以便读取指令。但是,如果批处理被调用时没有参数并且它被记录下来,那么批处理文件将永远坐在那里等待一个键来暂停暂停,但不会在屏幕上显示任何内容。
通常这根本就不是问题,但是我试图做这个傻瓜证明,因为我不会是在其他脚本/计划任务中实现批处理文件的人。
在这一点上,似乎我需要彻底摆脱使用停顿,但我希望有一个解决方案,我不需要。谢谢您的帮助。
而不是使用暂停,您可以使用超时选择命令。 – rojo 2013-03-20 21:16:37
可以检测重定向,并且如果管道处于活动状态,[如何检测输入是来自管道还是重定向文件](http://www.dostips.com/forum/viewtopic.php?p=10672#p10672) 。但是你也可以阅读这个[Dostips:参数万无一失](http://www.dostips.com/forum/viewtopic.php?p=14612#p14612),流是如何工作的。 – jeb 2013-03-20 21:58:14
Jeb感谢您将本文档链接起来,了解流媒体实际发生的情况确实很有趣。由于设置这些示例的复杂性,我觉得它会使批处理文件超过我所熟悉的水平。如果关键参数丢失,并且将指令标签链接到[%1] == [/?]或[%1] == [help] – 2013-03-22 12:53:13