【问题标题】:Not able to use keyboard when stdin redirection, batch file标准输入重定向时无法使用键盘,批处理文件
【发布时间】:2014-02-05 17:18:05
【问题描述】:

我有这个批处理文件:

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

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

【问题讨论】:

    标签: windows batch-file stdin


    【解决方案1】:

    当您使用cmd /k ... &lt; commands.txt 重定向标准输入时,您将丢失标准输入。为什么你会期待它回来?所有子进程都继承其基本(0、1 和 2)文件描述符。

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

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

    执行此操作时,cmd 窗口仍处于打开状态,我可以输入。

    【讨论】:

    • 远程在computerB上打开一个会话,我输入的所有命令都将在computerB中执行,因为我使用“
    • 如果你将commands.cmd复制到远程机器上的C:\temp,那么我给出的示例将在远程机器上运行commands.cmd,因为远程运行的命令是call C:\temp\commands.cmd .
    猜你喜欢
    • 2012-11-04
    • 2015-06-17
    • 2014-07-21
    • 2010-10-29
    • 1970-01-01
    • 2022-11-10
    • 2018-08-12
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多