Вы можете использовать это, чтобы найти все файлы в каталоге:
function GetFiles($path = $pwd, [string[]]$exclude)
{
foreach ($item in Get-ChildItem $path)
{
if ($exclude | Where {$item -like $_}) { continue }
if (Test-Path $item.FullName -PathType Container)
{
$item
GetFiles $item.FullName $exclude
}
else
{
$item
}
}
}
И отключить значение isReadOnly для файла, когда он находится в родительском каталоге с именем, равным (-eq) 'abc'
Так вы можете написать возможную функцию, подобную этой:
function GetFiles($path = $pwd, [string[]]$exclude)
{
foreach ($item in Get-ChildItem $path)
{
if ($exclude | Where {$item -like $_}) { continue }
if (Test-Path $item.FullName -PathType Container)
{
# directory
$item
GetFiles $item.FullName $exclude
}
else
{
# file
if($item.Parent.Name -eq "abc"){
# parent directory was named abc
# change isReadOnly value to false
# $item.isreadonly = $false;
Set-ItemProperty $item.FullName -name IsReadOnly -value $false
}
$item
}
}
}