Как правильно использовать -Exclude в Remove-Item для списка строк из переменной в Powershell? - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть переменная, в которой хранится список файлов для удаления в этом формате:

$list = """" + "file1.txt" + """"

и полный $list будет выглядеть примерно так:

$list
"file1.txt","file2.txt","file3.txt",...

и попытка использовать Remove-Item с переменной не удалась, она удалила все файлы:

Remove-Item -Recurse -Path "c:\myfiles\*" -Exclude $list

Как правильно этого добиться? Заранее спасибо!

1 Ответ

0 голосов
/ 02 ноября 2018

Вы близки, но $list должен быть массивом, а не строкой (с лишними кавычками).

Просто заключите каждый элемент в кавычки и разделите их запятой, чтобы сделать это:

$list = "file1.txt","file2.txt"

Remove-Item -Path "c:\myfiles\*" -Recurse -Exclude $list -WhatIf

Я бы также рекомендовал прочитать about_quoting_rules , поскольку кажется, что вы не знаете, что двойные и одинарные кавычки делают разные вещи.

Вместо одинарных кавычек:

$list = """" + "file1.txt" + """"

можно выразить как:

$list = '"file1.txt"'

(Эти дополнительные кавычки не нужны для кода выше)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...