在Get-ChildItem中传递变量中的路径

时间:2018-05-05 20:06:39

标签: powershell variables get-childitem illegal-characters

当我在字符串中使用*时,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 : Illegal characters in path.
At line:25 char:10
+ $Files = Get-ChildItem $PackagePath | Sort-Object -Property CreationT ...`

那么我应该如何使用*以及Get-ChildItem中的变量名来获得结果?

1 个答案:

答案 0 :(得分:0)

您的脚本逻辑和语法运行正常,您的代码问题可能与您指定的路径有关。对$PackagePath进行一些调试应该会有所帮助。

请尝试以下脚本:

<强> 1。这将在&#34; C:\ Stackoverflow \ Scripts&#34;

创建一个目录

<强> 2。在目录

中创建3个文本文件

第3。根据您的要求将路径存储在变量中,包括*

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


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

快速指针

  

为了帮助调试路径try Get-ChildItem -LiteralPath并回显结果,Literal Path按原样接收路径,并确保不包含任何通配符

$Files = Get-ChildItem -Name -LiteralPath "\\pdw01rasci001\SSISPackages\PROD\Logs\exec_package_OrderAnalytics_EXTR.dtsx"
echo "$Files"