我已经在这里看到了这个问题,但是它似乎对我的具体例子不起作用。我是第一次写一个简短的批处理文件,我希望它执行的命令是:
net time \\compname /set
这通常会提示是或否确认。我想避免批处理文件,并看到有人说你可以添加:
echo y | net time...
但是,当我使用此命令执行此操作时,我可以看到它要求确认,然后立即执行此操作后会显示:“未提供有效响应。”
有没有人知道是否有一个我不知道的标志可以解决这个问题,或者为什么在这种情况下,被管道输入的回声会给出这个有趣的回应?
答案 0 :(得分:8)
net time命令支持(未记录的)参数“/ yes”,因此这种情况下的答案非常简单:
net time \\compname /set /yes
答案 1 :(得分:0)
确认了这种行为。我想知道在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
)
如果这是在批处理文件中,请记住对所有这些变量使用额外的%
。感谢微软为编写脚本做了一件苦差事。