使用Powershell的可变路径中的通配符

rob*_*d13 7 variables powershell asterisk wildcard path

我想在我的脚本中使用变量中的通配符,如下所示:

$TARGET = "\\MACHINE1\c$\ProgramData\Test\12.*\Data\"
Run Code Online (Sandbox Code Playgroud)

问题是$ TARGET返回

\\MACHINE1\c$\ProgramData\Test\12.*\Data\
Run Code Online (Sandbox Code Playgroud)

并不是

\\MACHINE1\c$\ProgramData\Test\12.1.1.1\Data\
Run Code Online (Sandbox Code Playgroud)

然而

Test-Path "\\MACHINE1\c$\ProgramData\Test\12.*\Data\"

=> TRUE
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Joh*_*aan 6

您应该使用Get-ChildItem来检索真实路径:

$TARGET = "\\MACHINE1\c$\ProgramData\Test\12.*\Data\"
Get-ChildItem $Target


    Directory: \\MACHINE1\c$\ProgramData\Test\12.1.1.1

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        10-10-2014     12:48            data
Run Code Online (Sandbox Code Playgroud)


Avs*_*lom 5

在这种情况下,IMO最好使用Resolve-Path,

$TARGET = Resolve-Path "\\MACHINE1\c$\ProgramData\Test\12.*\Data\" | Select -ExpandProperty Path
Run Code Online (Sandbox Code Playgroud)