반응형
Powershell에서 Get-ChildItem -Exclude 매개 변수를 사용하여 디렉터리를 제외할 수 없습니다.
Powershell v 2.0을 사용하여 파일과 디렉터리를 한 위치에서 다른 위치로 복사하고 있습니다.파일 형식을 필터링하기 위해 [] 문자열을 사용하고 있으며 디렉터리가 복사되지 않도록 필터링해야 합니다.파일이 올바르게 필터링되고 있지만 필터링하려는 디렉터리obj
계속 복사됩니다.
$exclude = @('*.cs', '*.csproj', '*.pdb', 'obj')
$items = Get-ChildItem $parentPath -Recurse -Exclude $exclude
foreach($item in $items)
{
$target = Join-Path $destinationPath $item.FullName.Substring($parentPath.length)
if( -not( $item.PSIsContainer -and (Test-Path($target))))
{
Copy-Item -Path $item.FullName -Destination $target
}
}
여러 가지 방법으로 필터링을 해봤는데,\obj
또는*obj*
또는\obj\
하지만 아무 것도 효과가 없는 것 같습니다.
도움을 주셔서 감사합니다.
그-Exclude
매개 변수가 꽤 깨졌습니다.사용하지 않을 디렉토리를 필터링하는 것이 좋습니다.Where-Object (?{})
예를 들어:
$exclude = @('*.cs', '*.csproj', '*.pdb')
$items = Get-ChildItem $parentPath -Recurse -Exclude $exclude | ?{ $_.fullname -notmatch "\\obj\\?" }
추신: 경고의 말 – 사용할 생각도 하지 마세요.-Exclude
에Copy-Item
그 자체로
루트 아래에 파일을 나열하는 데 사용하지만 디렉터리는 포함하지 않습니다.
$files = gci 'C:\' -Recurse | Where-Object{!($_.PSIsContainer)}
Get-ChildItem -Path $SourcePath -File -Recurse |
Where-Object { !($_.FullName).StartsWith($DestinationPath) }
언급URL : https://stackoverflow.com/questions/19842754/unable-to-exclude-directory-using-get-childitem-exclude-parameter-in-powershell
반응형
'programing' 카테고리의 다른 글
Node.js 장치 테스트 (0) | 2023.08.28 |
---|---|
부트스트랩이 있는 고정 너비 버튼 (0) | 2023.08.28 |
목표 C 부울 배열 (0) | 2023.08.28 |
MariaDB의 하위 테이블에 있는 외부 키 값이 상위 테이블에서 중복된 값을 표시함 (0) | 2023.08.28 |
느린 쿼리 로그 비우기 (0) | 2023.08.28 |