2
::Stop Windows service
sc query MyWinService | find "STOPPED" & if errorlevel 1 net stop MyWinService
::delete the dll
del /q  E:\MyWinService\\*
for /d  %%x  in (E:\MyWinService\\*)  do  @rd  /s  /q  "%%x"

但是一些 dll 没有被删除,输出就像----"ACCESS DENIED"----我在执行 5 分钟后重新运行相同的命令一样。我知道,因为 dll 仍然与 Windows 服务相关联,所以错误即将到来,但我想删除 dll 而无需在 5 分钟后再次重新运行命令。:(

4

2 回答 2

2

批处理文件方式

:Repeat
del "del /q E:\MyWinService\*"
if exist "E:\MyWinService\sampledll.dll" goto Repeat
于 2013-01-23T13:09:12.860 回答
1

Powershell方式:

do
{
  $a = stop-service MyWinService -PassThru
 }while ($a.status -ne "Stopped")
    do
 {
 remove-item e:\MyWinService\* -recurse -force -ea silentlycontinue
 } untill ( (dir e:\mywinservice).count -gt 0 ) 
于 2013-01-23T13:06:47.753 回答