У меня есть два разных способа получения файлов с шаблоном подстановки:
Get-ChildItem "$ActivityLogDirectory/*.csv"
и
Get-ChildItem "$ActivityLogDirectory" -Filter *.csv
Я предпочитаю использовать последний вместо первого, потому что первый (Get-ChildItem "$ActivityLogDirectory/*.csv"
) иногда выдает мне ошибку отказа в разрешении.
Похоже, они оба возвращают одинаковые результаты, но когда я пытаюсь сжать полученные файлы с помощью этой команды:
Compress-Archive -Update -Path $CsvFiles -DestinationPath C:\Users\admin\Downloads\foo.zip
первый преуспевает, а второй - со следующей ошибкой:
Compress-Archive : The path 'rgb dev automation store a_1-1_2194_20181120.csv'
either does not exist or is not a valid file system path.
At line:1 char:1
+ Compress-Archive -Update -Path $CsvFiles -DestinationPath C:\Users\ad ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (rgb dev automat...94_20181120.csv:String) [Compress-Archive], InvalidOperationException
+ FullyQualifiedErrorId : ArchiveCmdletPathNotFound,Compress-Archive
Так в чем же разница между этими двумя способами получения списка файлов с использованием подстановочных знаков?Или, возможно, задали другой вопрос: почему использование -Filter *.csv
приводит к сбою командлета Compress-Archive
?