Вопрос:

Невозможно удалить файлы из списка, используя Remove-Item в PowerShell

powershell

15 просмотра

2 ответа

16 Репутация автора

Я пытаюсь удалить список файлов, который хранится в виде имен InputObject, из переменной '$ exclude_files' с помощью командлета Remove-Item.

Поскольку это список, я перебираю список и получаю имена файлов InputObject.

Ниже приведен код:

$source_dir ="C:\Files"

#Files are in below variable $exclude_files

$exclude_files

InputObject      SideIndicator
-----------      -------------
Credentials.xml  =>
EC2_Ubuntu.pem   =>
file2.png        =>
file3.txt        =>
Terminals.config =>

# tried with giving path and without giving path
foreach ($i in $exclude_files){ Remove-Item -Path $source_dir  $i.InputObject }

Но я получаю следующую ошибку:

Remove-Item: не удается найти путь «C: \ Files \ file3.txt», поскольку он не существует. В строке: 1 символ: 31 + foreach ($ i в $ exclude_files) {Remove-Item $ i.InputObject} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (C: \ Files ... file3.txt: String) [Remove-Item], ItemNotFoundException + FullyQualifiedErrorId: PathNotFound, Microsoft.PowerShell.Commands.RemoveItemCommand

Автор: HariUmesh Источник Размещён: 11.08.2019 05:59

Ответы (2)


0 плюса

4908 Репутация автора

Попробуйте следующее:

$exclude_files.InputObject | Remove-Item -Path {Join-Path $source_dir $_ }

Кажется, что $i.InputObjectон используется в качестве входных данных для -Filterпараметра (так как это первый позиционный параметр в Pathнаборе параметров), что может не соответствовать предполагаемой идее.

Автор: Moerwald Размещён: 11.08.2019 06:35

0 плюса

16 Репутация автора

я получил решение для этого .. как вы предложили, когда перебирать список с InputObject, его работа

foreach($i in $exclude_files)
            {
                $i.InputObject | Remove-Item -Path {Join-Path $source_dir $_}
    }

Благодарю вас

Автор: HariUmesh Размещён: 11.08.2019 07:53
Вопросы из категории :
32x32