stdin重定向,批处理文件时无法使用键盘

时间:2014-02-05 17:18:06

标签: windows batch-file stdin

我有这个批处理文件:

 @echo off
 echo c:\temp\MyProgram.exe > commands.txt
 runas /profile /savecred /user:user1 "cmd /k remote /c computerB session_1 < commands.txt"
 ....

阐释:
我使用user1将remotley连接到comupterB并执行MyProgram.exe(即在计算机B中)。 MyProgram.exe在控制台中执行,并从用户执行等待操作(类型参数)。问题是我无法在MyProgram控制台中键入任何键盘,看起来键盘完全被忽略了!。
我知道我必须切换到stdin = 0键盘,但我不知道该怎么做 感谢

1 个答案:

答案 0 :(得分:2)

当您使用cmd /k ... < commands.txt重定向标准输入时,您正在丢失标准输入。你为什么期望得到回来?所有子进程都继承其基本(0,1和2)文件描述符。

commands.txt是批处理文件吗?如果是这样,为什么不运行它而不是从它重定向命令? 您可以将该文件复制到远程计算机,然后调用它,使cmd保持打开状态。

runas /user:user1 "cmd /k remote /c computerB session_1 call c:\temp\commands.cmd"

当我这样做时,cmd窗口仍处于打开状态,我可以输入它。

相关问题