Передача пути в переменную в 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"