Передача пути в переменную в Get-ChildItem

Когда я использую * тогда в строке Get-ChildItem возвращает значение

$Files = Get-ChildItem "C:\PROD\Logs\exec_package_OrderAnalytics_EXTR.dtsx*"

Но когда я храню путь в переменной, включая * тогда это показывает ошибку:

$PackageName = "OrderAnalytics_EXTR.dtsx"
$PackagePath = "\\pdw01rasci001\SSISPackages\PROD\Logs\exec_package_$($PackageName)*"
$Files = Get-ChildItem "$PackagePath"

Сообщение об ошибке:

Get-ChildItem: недопустимые символы в пути.
В строке:25 символов:10
+ $Files = Get-ChildItem $PackagePath | Sort-Object -Property CreationT ...`

Так как я должен использовать * а также имя переменной в Get-ChildItem получить результат?

1 ответ

Ваша логика и синтаксис скрипта работает нормально, проблема с вашим кодом, скорее всего, связана с указанным вами путем. немного отладки $PackagePathдолжно помочь

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

1. Который создаст каталог в "C:\Stackru \ Scripts"

2. Создает 3 текстовых файла в каталоге

3. Сохраняет путь в переменной, включая * согласно вашему требованию

New-Item -ItemType Directory -Path "C:\Stackru\Scripts" -Force
New-Item -ItemType File -Path "C:\Stackru\Scripts\Untitled1.txt", "C:\Stackru\Scripts\Untitled2.txt", "C:\Stackru\Scripts\Untitled3.txt"


$FileName = "led"
$FilePath = "C:\Stackru\Scripts\\Untit${FileName}*"
$Files = Get-ChildItem -Name "$FilePath"
echo "$Files"

Быстрый указатель

Чтобы помочь отладить путь, попробуйте Get-ChildItem -LiteralPath и повторяя результат, Literal Path принимает путь таким, какой он есть, и убедитесь, что не содержит никаких подстановочных знаков

$Files = Get-ChildItem -Name -LiteralPath "\\pdw01rasci001\SSISPackages\PROD\Logs\exec_package_OrderAnalytics_EXTR.dtsx"
echo "$Files"
Другие вопросы по тегам