如何测试STDIN是批量终端?

时间:2014-03-29 02:20:01

标签: batch-file window stdin

在shell中我可以这样做:

if test -t 0  ; then
  echo stdin is a tty
  exit 0
fi

如何批量执行此操作?

1 个答案:

答案 0 :(得分:7)

已编辑 - 感谢所有测试人员。

@echo off
    timeout 1 2>nul >nul
    if errorlevel 1 (
        echo input redirected
    ) else (
        echo input is console
    )

timeout命令尝试直接访问控制台,如果批处理文件执行为

,则会失败
myBatchFile.cmd < input.txt
echo something | myBatchFile.cmd

在Windows XP上测试(从W2003 Resource Kit超时),7和8.1。