A solução é fornecer / Y para forçar a exclusão. Isso não é documentado , infelizmente.
Estou tentando, usando NAnt, desconectar um compartilhamento (para redirecioná-lo em outro lugar), mas minha tentativa falha:
[exec] Starting 'net (SHARE ad3-config /DELETE)' in 'c:\NAntDistributorBuilds\LocalInstallations\ad3config_master_1.0.19.4006'
[exec] Users have open files on ad3-config. Continuing the operation will force the files closed.
[exec] No valid response was provided.
[exec]
[exec] Do you want to continue this operation? (Y/N) [N]:
[exec] c:\NAntDistributorBuilds\LocalInstallations\ad3config_master_1.0.19.4006\install.build(32,6):
[exec] External Program Failed: net (return code was -1)
[exec] Starting 'net (SHARE ad3-config="c:\NAntDistributorBuilds\LocalInstallations\ad3config_master_1.0.19.4006" /UNLIMITED)' in 'c:\NAntDistributorBuilds\LocalInstallations\ad3config_master_1.0.19.4006'
[exec] The name has already been shared.
[exec]
[exec] More help is available by typing NET HELPMSG 2118.
[exec]
Não consigo encontrar uma maneira de fornecer a resposta "Sim" por meio da linha de comando - não há comutadores / Q. A máquina de destino é um servidor Windows 2003. O DOS possui um equivalente ao comando unix 'yes'?
Se eu puder fazer isso na linha de comando, talvez eu consiga fazer isso na tarefa exec do NAnt.
A solução é fornecer / Y para forçar a exclusão. Isso não é documentado , infelizmente.
Você não pode apenas echo Y
? Se não estiver usando o cmd, basta executá-lo com %COMSPEC% /c echo Y | net...
.