2016-06-13 2 views
2

Я пытаюсь написать сценарий автоматической сборки и развертывания, используя powershell 2 для моего приложения angular2, но, видя, как наш веб-API ASP.NET живет в api/, я хочу удалить весь старый угловой код, не касаясь API ,Как удалить все содержимое каталога (включая подкаталоги), кроме одного подкаталога?

Вот что у меня до сих пор:

Get-ChildItem -Path $destination -Recurse -exclude somefile.txt | 
Select -ExpandProperty FullName | 
Where {$_ -notlike $destination+'\api*'} | 
sort length -Descending | 
Remove-Item -force -recurse 

$destination это каталог, в котором запускается приложение установлено.

Быстрое дерево папок в случае, если я не ясно выше:

$destination 
    api\ 
    app\ 
    assets\ 
    vendor\ 
    index.html 
    main.js 
    system-config.js 

Как и выше, я хочу, чтобы удалить все, кроме api\

ответ

3

У меня нет доступа к Powershell 2. Но, используя Powershell 3 (и более поздние версии), вы должны быть в состоянии упростить код, используя что-то вроде этого:

$path = "C:\test path" 
Remove-Item $path -recurse -Exclude "api" 

Я создал такую ​​же структуру папок, указанную Assum что api, Приложение, активы и поставщики являются подпапками. Я запустил скрипт в PowerShell IDE, и он удалил все под тестовым путем, за исключением папки api. Я бы предположил, что Powershell 2 поддерживает те же параметры в команде.

+0

Хм, это не работает для меня. –

Смежные вопросы