5

我已经看到这里回答了这个问题,但是它似乎不适用于我的具体示例。我是第一次写一个简短的批处理文件,我希望它执行的命令是:

net time \\compname /set

这通常会提示确认是或否。我想为批处理文件避免这种情况,并看到人们说您可以添加:

echo y | net time...

但是,当我使用此命令执行此操作时,我可以看到它要求确认,然后紧接着它有一行说:“没有提供有效的响应。”

有谁知道是否有一个我不知道的标志可以解决这个问题,或者为什么在这种情况下,通过管道输入的 echo y 会给出这个有趣的响应?

4

2 回答 2

8

net time 命令支持(未记录的)参数“/yes”,因此这种情况下的答案非常简单:

net time \\compname /set /yes
于 2013-07-12T06:42:08.723 回答
0

确认了这种行为。我想知道运行时是否正在清除输入流NET。如果我运行它并立即输入一些字符,它们会在它最终给出提示后出现,但管道或文件重定向不起作用。一些旨在交互的程序确实具有这种令人沮丧的特征。

试试这个变通方法,它从计算机中检索时间,然后使用它来设置它datetime它可以从管道中获取数据。

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
)

%如果这是在批处理文件中,请记住对所有这些变量使用额外的。感谢 Microsoft 让编写脚本成为一件苦差事。

于 2013-07-11T23:29:17.750 回答