我已经看到这个问题在这里回答,但它似乎并不适用于我的具体示例。 我第一次写一个简短的batch file,我希望它执行的命令是:
net time \\compname /set
这通常会提示是或否确认。 我想避免这个batch file,看到有人说你可以添加:
echo y | net time...
但是,当我使用这个命令的时候,我可以看到它要求确认,然后紧接着它有一行说:“没有提供有效的响应。
有谁知道是否有一个标志,我不知道,可以解决这个问题,或者为什么在这种情况下回声pipe道input给出了这个有趣的回应?
net time命令支持(未记录的)参数“/ yes”,所以在这种情况下的答案很简单:
net time \\compname /set /yes
证实了这一行为。 我想知道当NET
运行时输入流是否被清除。 如果我运行它,并立即键入一些字符,它们显示后,它最终会提示,但管道或文件重定向不起作用。 一些旨在交互的程序确实有这个令人沮丧的特性。
试试这个解决方法,它从计算机中检索时间,然后使用可以从管道获取数据的date
和time
进行设置。
for /f "tokens=6-7" %a in ('net time \\compname') do ( echo Setting system time to %a %b echo %a | date > nul echo %b | time > nul )
如果这个变量在批处理文件中,请记住对所有这些变量使用额外的%
。 感谢微软做脚本的一件苦差事。