2013-02-28 45 views
6

我在寫一個簡單的批處理文件(remove.bat)來刪除一個目錄及其所有子目錄。該文件包含以下命令 -如何在Windows上提供控制檯輸入(是/否)作爲批處理文件的一部分。

rmdir /S modules 

其中模塊就是非空目錄的名稱。

我得到以下信息 -

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

我怎麼能供應通過批處理文件控制檯輸入「Y」上述Y/N的問題嗎?有沒有可以做到這一點的命令?

+2

一般的解決方法,對於沒有'/ q'標誌的命令,是'回聲y | rmdir/s modules' – 2013-03-01 00:15:00

回答

20

正如其他人指出的那樣,您應該使用/Q選項。但是,還有另一種「老派」的方式來做到這一點,當天命令沒有選項來禁止確認消息。只需簡單地回覆所需的響應並將該值輸入命令。

echo y|rmdir /s modules 

我建議使用/Q選項,而不是,但如果你曾經遇到的命令不提供選項來抑制確認消息管道技術可能是很重要的。

+0

謝謝。這是最有用的答案。 – CodeBlue 2013-03-01 18:15:17

+0

謝謝,這是一個非常好的開箱即用的答案,適用於其他命令,然後rmdir – 2015-04-08 13:33:05

1

你可以做

rmdir /Q 

Q是安靜

2

使用rmdir /S /Q modules

/Q抑制確認提示。

2

rmdir /S刪除一個非空目錄,做rmdir /Q不提示。合併爲rmdir /S /Q以靜靜刪除非空目錄。

0

我只想補充一點,雖然不適用於Rmdir,但在某些情況下,強制切換也可能是解決方案。因此,在一般意義上,您應該查看/ f,/ q或其某些變體的命令開關(例如,Netdom RenameComputer使用/ Force,而不是/ f)。

回聲管是一個巧妙的技巧,非常有用,因爲你不會總是找到合適的開關。舉例來說,我認爲這是繞過這個Y/N提示的唯一途徑...

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

Link to nearly identical StackOverflow post

+0

兩年後,你決定發佈一個答案,不提供任何新的信息!?爲什麼?你的第一句話是錯誤的 - 「/ Q」選項是「強制」選項,正如前面三個答案中所述。 – dbenham 2016-06-14 13:50:57

+0

@dbenham我明白了你的觀點,但是...... 1.)爲什麼兩年後這個問題仍然是谷歌的一個結果? 2.)「新信息」的例子是你可能不得不爲另一個命令尋找一個類似的開關,它不會總是/ q或/ f,但這些都是很好的第一次猜測。 3。)我想你可以挑選第一句話,但它提出了一個很好的觀點,這裏的其他帖子沒有提到。 「強制」一詞讓我期待「Y」行爲,而「安靜」一詞讓我認爲「Y」或「N」。如果未提供/ S,RmDir/Q實際上爲非空文件夾提供「N」行爲。 – u8it 2016-06-14 21:29:21

+0

@dbenham我同意這個答案不會增加很多,但是我真的把它作爲我自己關於Netdom的問題的答案發布。我想分享我在不同情況下發現的工作,但認爲這太類似,不能成爲一個單獨的問題,而且我總是毫不猶豫地發佈並回答我自己的問題......所以我在這裏添加了......也許它應該是單獨的 – u8it 2016-06-14 21:32:14

相關問題