如何在Windows上提供控制台input(是/否)作为batch file的一部分。

我正在写一个简单的batch file(remove.bat)来删除一个目录及其所有子目录。 该文件包含以下命令 –

rmdir /S modules 

其中modules是非空目录的名称。

我收到以下消息 –

 C:\...\bin>rmdir /S modules modules, Are you sure (Y/N)? 

如何通过batch file控制台input“Y”提供给上面的Y / N问题? 有没有可以做到这一点的命令?

正如其他人指出的,你应该使用/Q选项。 但是还有另外一种“老派”的方式,在当天命令没有选择压制确认信息的时候使用。 只需简单地回复所需的响应,并将值输入命令。

 echo y|rmdir /s modules 

我建议使用/Q选项,但是如果您遇到不提供禁止确认消息选项的命令,则管道技术可能非常重要。

使用rmdir /S /Q modules

/Q抑制确认提示。

rmdir /S删除一个非空的目录,并执行rmdir /Q不提示。 合并到rmdir /S /Q ,悄悄地删除非空目录。

你可以做

 rmdir /Q 

Q是安静的

我只想补充说,虽然不适用于Rmdir,但在某些情况下,强制切换也可能是解决方案。 所以在一般意义上,你应该看看你的命令开关为/ f,/ q或其一些变体(例如,Netdom RenameComputer使用/ Force,而不是/ f)。

回声管是一个巧妙的技巧,非常有用,因为你不会总是找到合适的开关。 例如,我认为这是绕过这个Y / N提示的唯一方法。

 Echo y|NETDOM COMPUTERNAME WorkComp /Add:Work-Comp 

链接到几乎相同的StackOverflow后