2013-02-28 11 views
6

Sto scrivendo un semplice file batch (remove.bat) per rimuovere una directory e tutte le sue sottodirectory. Il file contiene il seguente ComandoCome fornire l'input della console (sì/no) come parte del file batch su Windows.

rmdir /S modules 

dove moduli è il nome della directory non vuota.

ottengo il seguente messaggio -

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

Come posso fornire attraverso il file batch la console di input "Y" alla domanda S/N di cui sopra? C'è un comando che può fare questo?

+2

La soluzione generale, per i comandi che non hanno una bandiera '/ q', è' echo y | rmdir/s modules' –

risposta

20

Come altri hanno sottolineato, è necessario utilizzare l'opzione /Q. Ma c'è un altro modo "vecchia scuola" per farlo che è stato utilizzato nel giorno in cui i comandi non avevano opzioni per sopprimere i messaggi di conferma. Semplicemente ECHO la risposta necessaria e inserisci il valore nel comando.

echo y|rmdir /s modules 

mi consiglia di utilizzare l'opzione /Q invece, ma la tecnica del tubo potrebbe essere importante se mai esegue in un comando che non fornisce un'opzione per sopprimere i messaggi di conferma.

+0

Grazie. Questa è la risposta più utile. – CodeBlue

+0

grazie, questa è stata un'ottima risposta pronta, funziona anche per altri comandi quindi rmdir –

1

Si può fare

rmdir /Q 

Q è per tranquillo

2

Usa rmdir /S /Q modules

/Q sopprime la richiesta di conferma.

2

Do rmdir /S per l'eliminazione di una directory non vuota e fare rmdir /Q per mancata richiesta. Combina a rmdir /S /Q per eliminare tranquillamente le directory non vuote.

0

Voglio solo aggiungere che, sebbene non applicabile a Rmdir, un interruttore di forza può anche essere la soluzione in alcuni casi. Quindi in senso generale dovresti guardare i tuoi parametri di comando per/f,/q, o qualche variante di essa (per esempio, Netdom RenameComputer usa/Force, non/f).

L'echo pipe è un trucco accurato e molto utile da tenere in giro poiché non troverete sempre un interruttore appropriato. Per esempio, credo che sia l'unico modo per aggirare questo S/N pronta ...

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

Link to nearly identical StackOverflow post

+0

Due anni dopo, e decidi di pubblicare una risposta che non fornisce alcuna nuova informazione !? Perché? E la tua prima frase è sbagliata - l'opzione '/ Q' è l'opzione" forza ", come già affermato nelle tre risposte precedenti. – dbenham

+0

@dbenham Vedo il tuo punto, ma ... 1.) Perché due anni dopo è un problema quando questo è ancora un risultato su Google? 2.) Esempio di "nuove informazioni" è che potresti dover cercare un interruttore simile per un altro comando, non sarà sempre/q o/f, ma quelle sono buone prime ipotesi. 3.) Immagino che potresti scegliere la prima frase, ma fa notare che altri post qui non menzionano. La parola "forza" mi fa aspettare un comportamento "Y", mentre la parola "quiet" mi fa pensare a "Y" o "N". Se/S non viene fornito, RmDir/Q fornisce effettivamente il comportamento "N" per una cartella non vuota. – u8it

+0

@dbenham Concordo sul fatto che questa risposta non aggiunga molto però ... L'ho pubblicata come risposta alla mia domanda su Netdom. Volevo condividere ciò che ho trovato funzionato in diversi casi, ma ho pensato che fosse troppo simile per essere una domanda separata, e ho sempre esitato a postare e rispondere alle mie domande ... quindi l'ho aggiunto qui ... forse dovrebbe essere separato – u8it

Problemi correlati