除了一个子目录外,如何删除目录(包括子目录)的所有内容?

时间:2016-06-13 14:45:33

标签: powershell

我正在尝试使用PowerShell 2为我的angular2应用编写自动构建和部署脚本,但是看看我们的ASP.NET Web API如何存在于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\

以外的所有内容

1 个答案:

答案 0 :(得分:4)

我无法访问PowerShell 2.但是,使用PowerShell 3(及更高版本),您应该能够通过使用以下内容来简化代码:

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

我创建了您指定的相同文件夹结构,假设 api app assets vendor 是子文件夹。我在PowerShell IDE中运行了脚本,除了api文件夹之外,它删除了测试路径下的所有内容。我假设PowerShell 2在命令上支持相同的参数。