“net share xyz / DELETE” falhará se um arquivo estiver em uso nesse compartilhamento

13

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.

    
por Andrew Matthews 19.05.2011 / 03:22

2 respostas

16

A solução é fornecer / Y para forçar a exclusão. Isso não é documentado , infelizmente.

    
por 09.11.2011 / 01:17
1

Você não pode apenas echo Y ? Se não estiver usando o cmd, basta executá-lo com %COMSPEC% /c echo Y | net... .

    
por 19.05.2011 / 04:45