当我在字符串中使用*
时,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
中的变量名来获得结果?
答案 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"