Очистка папки с PowerShell

Я хотел бы очистить некоторые каталоги после своих выполнений сценария путем удаления определенных папок и файлов из текущего каталога, если они существуют. Первоначально, я структурировал сценарий как это:

if (Test-Path Folder1) {
  Remove-Item -r Folder1
}
if (Test-Path Folder2) {
  Remove-Item -r Folder2
}
if (Test-Path File1) {
  Remove-Item File1
}

Теперь, когда у меня есть довольно много объектов, перечисленных в этом разделе, я хотел бы очистить код. Как я могу сделать так?

Примечание стороны: объекты очищены перед выполнениями сценария, так как они перенесены от предыдущего выполнения в случае, если я должен исследовать их.

10
задан Sam Harwell 24 April 2010 в 14:12
поделиться

4 ответа

# if you want to avoid errors on missed paths
# (because even ignored errors are added to $Error)
# (or you want to -ErrorAction Stop if an item is not removed)
@(
    'Directory1'
    'Directory2'
    'File1'
) |
Where-Object { Test-Path $_ } |
ForEach-Object { Remove-Item $_ -Recurse -Force -ErrorAction Stop }
11
ответ дан 4 December 2019 в 00:23
поделиться
Folder1, Folder2, File1, Folder3 |
    ?{ test-path $_ } |
        %{
            if ($_.PSIsContainer) {
                rm -rec $_ #  For directories, do the delete recursively
            } else {
                rm $_ #  for files, just delete the item
            }
        }

Или вы можете сделать два отдельных блока для каждого типа.

Folder1, Folder2, File1, Folder3 |
    ?{ test-path $_ } |
        ?{ $_.PSIsContainer } |
            rm -rec

Folder1, Folder2, File1, Folder3 |
    ?{ test-path $_ } |
        ?{ -not ($_.PSIsContainer) } |
            rm
1
ответ дан 4 December 2019 в 00:23
поделиться

Одна возможность

function ql {$args}

ql Folder1 Folder2 Folder3 File3 |
    ForEach {
        if(Test-Path $_) {
            Remove-Item $_
        }
    }
0
ответ дан 4 December 2019 в 00:23
поделиться
# if you do not mind to have a few ignored errors
Remove-Item -Recurse -Force -ErrorAction 0 @(
    'Directory1'
    'Directory2'
    'File1'
)
0
ответ дан 4 December 2019 в 00:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: