【问题标题】:Passing the path in variable in Get-ChildItem在 Get-ChildItem 中传递变量中的路径
【发布时间】:2018-05-05 20:06:39
【问题描述】:

当我在字符串中使用* 时,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 = 获取子项 $PackagePath |排序对象-Property CreationT ...`

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

【问题讨论】:

  • 为我工作,当我复制和粘贴您的代码时没有收到该错误消息..?
  • @Anders:虽然封闭的"..." 不是必需的,但它们在这里也没有什么区别(与类似 POSIX 的 shell 不同,PowerShell 的通配符支持不依赖于 unquoted 论据)。
  • AkashPaul:您的两个示例使用不同的路径 - 您的问题可能与变量的使用无关,而是与 UNC 路径引用的目录中存在的特定文件有关。
  • 您的错误信息与您的代码不匹配。请创建一个minimal reproducible example 并发布该代码及其产生的错误消息。另外,请避免使用 $($variable) 在字符串中插入变量的构造。正确的方式是${variable}
  • @Clint 我认为这是一种很好的做法,因为子表达式的工作方式。它们执行嵌套命令并返回输出,然后将其嵌入到字符串中。如果一个变量只是简单地回显该变量的值,因此结果与扩展变量相同,并且在某些情况下您无法避免它(例如,对于数组、对象属性等的索引访问) .),但 IMO 是一种比扩展变量更不干净的方法。此外,较少的特殊字符提高了整体可读性。 ;)

标签: powershell variables get-childitem illegal-characters


【解决方案1】:

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

试试下面的脚本:

1.这将在“C:\Stackoverflow\Scripts”中创建一个目录

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"

快速指针

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

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

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 2018-01-09
    • 2016-08-11
    • 2020-04-02
    • 1970-01-01
    • 2021-10-13
    相关资源
    最近更新 更多