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サービスに関連付けられているため、エラーが発生していることはわかっていますが、5分後にコマンドを再実行せずにdllを削除したいと考えています。:(

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 に答える