我有一个简单的脚本,该脚本用于从文件夹中删除文件。该脚本接受两个参数:
这是我拥有的脚本:
Param(
[Parameter(Mandatory=$True)]
[string]$pathDeleteFrom,
[Parameter(Mandatory=$True)]
[string[]]$excludeFiles
)
Remove-Item -path $pathDeleteFrom -exclude $excludeFiles -Recurse
我正在测试具有以下结构的文件夹中的脚本:
示例(为路径“ C:/ test / files / *”运行脚本):
如果排除"*.txt"
,则仅删除.json
文件。
如果我想删除除文件夹及其内容以外的所有文件,我尝试排除"folder"
和"folder/*"
除外,但这似乎不起作用。
我无法理解的是,我是否有办法使用通配符排除"folder"
及其内容。
我知道这可能是一个简单的问题,但是我尝试过在线搜索,但是找不到与我所遇到的情况类似的示例。
答案 0 :(得分:1)
这应该完成您要完成的工作...只需填写空白,然后将条件语句修改为所需的内容即可。
$items = Get-ChildItem -Path "Directory Path" -Recurse
foreach($item in $items)
{
if($item.name -like "*.TXT" -or $item.name -like "*.Json")
{
#CODE HERE
}
elseif(($item.GetType()).Name-eq "DirectoryInfo" -and $item.name -eq "Directory Name")
{
#CODE HERE
}
}