【问题标题】:CMD Batch File With Muliple Inputs具有多个输入的 CMD 批处理文件
【发布时间】:2012-04-23 09:59:29
【问题描述】:

我正在尝试自动化一个命令,提示用户输入他们的密码,即有问题的命令;

tpmvscmgr.exe create /name "vSmartcard" /pin prompt /adminkey default generate

此时你按下回车,接下来你看到的是

Enter Pin:

您输入 pin 并按 enter,然后系统会要求您在再次按 enter 之前确认 pin。

如何在批处理文件或 powershell 中自动执行此操作?我找不到任何以类似方式工作的命令,甚至无法开始使用它。

【问题讨论】:

  • 您到底想自动化什么?您是否只是想跳过密码的确认,程序认为重要到足以要求您输入两次的信息?或者您是否试图完全省略输入部分,在文本文件中有一个引脚列表?
  • 另外,程序的/pin 开关似乎需要一个参数,你把prompt 放在那里。它是唯一的选择吗?它会接受类似于/pin 1234 的东西,其中1234 代表一个引脚,之前输入过,然后作为参数提供?
  • 假设我已经构建了一台新机器,我想创建虚拟智能卡并设置密码。我希望它从脚本运行以节省用户必须进入并执行此操作。它不接受 /pin 1234(我们已将其归档为错误)所以我只想自动运行命令和输入 pin

标签: powershell batch-file cmd


【解决方案1】:

我不确定下面的技巧是否适用于您的特定程序;但即使在这种情况下,如果程序提示输入额外的输入,它也必须放在引脚号旁边的括号内。也许这足以满足您的需求...

@echo off
(
echo pinnum
echo pinnum
) | tpmvscmgr.exe create /name "vSmartcard" /pin prompt /adminkey default generate

【讨论】:

  • 关闭,但它会在运行 tpmvscmgr.exe 之前尝试将 pin 放入
  • @AliBeasley:对不起,我想我不明白你的评论。究竟会发生什么?程序冻结等待引脚?给定的 pinnum 被忽略?别的? ...
  • 因此运行该命令,在程序要求输入密码之前输入密码,所以它只是坐在那里等待用户输入密码。
  • @AliBeasley:“它只是坐在那里等待用户输入密码”部分表明此技巧不适用于您的程序(只要程序仍然从键盘读取密码) .但是,您的“在程序要求之前输入了密码”评论毫无意义……您的意思是什么?
  • Aacini:也许这只是基于程序不接受来自echos 的输入这一事实的推测。 @AliBeasley:很可能,这些行被传递到tpmvscmgr.exe 的标准输入(而且及时),但程序可能忽略了它们。可能是因为程序使用了与标准输入不同的方式来读取用户输入。这种情况并不少见:一些请求用户名和密码的程序也会有这样的行为,从而阻止您以 this 方式自动执行身份验证过程。因此,总而言之,这可能在某些情况下有效,但不适用于您的情况。
猜你喜欢
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多