Powershell — включить проблему с переменной стоимостью $

#arrays #powershell #get-childitem

#массивы #powershell #получить дочерний элемент

Вопрос:

Почему $ arraychoices не работает в этом gci?.. Но если я жестко закодирую расширение типа файла в нем?

Не работает

 $filetypes = @()
$filetypes  = '*.pdf'
$filetypes  = '*.txt'
$ftc = $filetypes
$arraychoices = "('$($ftc -join "','")')"

$fr = Get-ChildItem C:backuptest **-include $arraychoices** -Recurse 
$files = $fr.fullname
$files
  

Работает ли Harcode?

 Get-ChildItem C:backuptest **-include ('*.pdf','*.txt')** -Recurse 
  

Чего мне не хватает? Это мой приведенный выше пример. Я использую флажки для расширений типов файлов, поэтому метод жесткого кода не подходит.

Любая помощь приветствуется. TIA

Комментарии:

1. Есть разница между строкой 'a,b' и массивом строк 'a','b' . Полностью пропустите шаг $ftc / $arraychoices : Get-ChildItem -Include $filetypes

2. О, вау. Как я это пропустил. Отлично работает. Спасибо за ваше время, Матиас!

Ответ №1:

$filetypes уже является массивом строк — передайте его непосредственно в -Include параметр:

 $filetypes = @()
$filetypes  = '*.pdf'
$filetypes  = '*.txt'

Get-ChildItem -Include $filetypes ...