Скрипт Powershell для удаления определенных нюгетов из любых и всех локальных кеш-папок, связанных с нюгетами - PullRequest
0 голосов
/ 11 февраля 2019

Нужна помощь в составлении скрипта powershell, который будет:

  1. выполнить следующую команду:

    nuget locals all -list
    
  2. Анализировать вывод, которыйобычно выглядит следующим образом:

    http-cache: C:\Users\<username>\AppData\Local\NuGet\v3-cache
    global-packages: C:\Users\<username>\.nuget\packages\
    temp: C:\Users\<username>\AppData\Local\Temp\NuGetScratch
    
  3. Продолжить удаление всех пакетов, соответствующих определенному регулярному выражению, скажем:

    "^Foobar[.].*"
    

    из http-кэша папоки глобальные пакеты.

Я немного неопытен с powershell.Любая помощь приветствуется.Заранее спасибо.

Быстрое редактирование: С моим ограниченным знанием powershell я собрал следующий скрипт, который немного туповат:

 # Delete code/packages/Foobar.* folders
 $foobarNugetFolders = [System.IO.Path]::GetFullPath((  Join-Path (pwd) "Code\packages"  )) + "\Foobar.*";
 $fso = New-Object -ComObject scripting.filesystemobject;
 try { $fso.DeleteFolder($foobarNugetFolders); } catch { }

 # Delete Foobar.*.dll files from the bin and obj folders
 $items = @(
    "Foobar.*.dll*",
    "Foobar.*.xml*",
    "Foobar.*.nupkg*"
 );
 gci -force -include $items -recurse | remove-item -force -recurse -ErrorAction SilentlyContinue;

 # Clean all global nuget caches
 $nugetExe = [System.IO.Path]::GetFullPath((  Join-Path (pwd) "Code\.nuget\nuget.exe"  ));
 & $nugetExe  locals   all   -clear
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...