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



我有这个批处理文件:

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

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

cmd /k ... < commands.txt重定向stdin时,您会失去stdin。您为什么希望将其拿回来?所有子进程都继承其基础(0、1和2)文件描述符。

commands.txt是批处理文件吗?如果是这样,为什么不运行它而不是从中转移命令呢?您可以将该文件复制到远程计算机,然后调用它,使CMD打开。

runas /user:user1 "cmd /k remote /c computerB session_1 call c:tempcommands.cmd"

当我这样做时,CMD窗口仍然保持打开状态,我可以输入其中。

最新更新