我正在编写一个 powershell 脚本,从文件夹中删除某些文件,并将其余文件移动到预定义的子文件夹中。
我的结构看起来像这样
Main
(Contains a bunch of pdb and dll files)
-- _publish
--Website
(Contains a web.config, two other .config files and a global.asax file)
-- bin
(Contains a pdb and dll file)
-- JS
-- Pages
-- Resources
我想在开始移动之前从整个文件结构中删除所有 pdb、config 和 asax 文件。我使用的:
$pdbfiles = Get-ChildItem "$executingScriptDirectory\*.pdb" -recurse
foreach ($file in $pdbfiles) {
Remove-Item $file
}
对于我需要删除的所有文件类型,依此类推。除了位于网站 bin 文件夹中的 pdb 文件外,它工作得很好。对于网站文件夹中的 ASAX 文件。由于某种原因,它们被 Get-ChildItem 递归搜索忽略。
这是由递归结构中项目的深度引起的吗?或者是别的什么?我该如何修复它,所以它会按照指定的方式删除所有文件。
编辑:我尝试添加 -force - 但它没有改变
答案:以下工作:
$include = @("*.asax","*.pdb","*.config")
$removefiles = Get-ChildItem "$executingScriptDirectory\*" -recurse -force -include $include
foreach ($file in $removefiles) {
if ($file.Name -ne "Web.config") {
Remove-Item $file
}
}