从带有通配符的路径获取实际路径

时间:2015-06-17 14:35:31

标签: powershell if-statement

dlmwrite('data.txt', mean_2); dlmwrite('data.txt', ' ', '-append'); dlmwrite('data.txt', mean_4, '-append'); dlmwrite('data.txt', ' ', '-append'); dlmwrite('data.txt', mean_8, '-append'); dlmwrite('data.txt', ' ', '-append'); dlmwrite('data.txt', std_2, '-append'); dlmwrite('data.txt', ' ', '-append'); dlmwrite('data.txt', std_4, '-append'); dlmwrite('data.txt', ' ', '-append'); dlmwrite('data.txt', std_8, '-append'); dlmwrite('data.txt', ' ', '-append'); dlmwrite('data.txt', coVariance, '-append'); 语句中使用Test-Path时,我希望获得if语句成功的路径。

例如,这些文件存在于C:

if

我在“then”分支怎么办?

C:\Test6_1_15.txt
C:\Test6_2_15.txt
C:\Test6_3_15.txt
C:\Test6_4_15.txt

3 个答案:

答案 0 :(得分:5)

听起来像你想要的Resolve-Path

if(($Paths = @(Resolve-Path "C:\Test6_*_15.txt"))){
    foreach($file in $Paths){
        # do stuff
    }
} else {
    # Resolve-Path was unable to resolve "C:\Test6_*_15.txt" to anything
}

答案 1 :(得分:2)

您可以执行get-item $path,它会在结果中返回实际文件名。

答案 2 :(得分:1)

Test-Path你不会得到它。 Test-Path返回一个布尔值,表示传递的路径的存在。查看TechNet

中的说明
  

如果所有元素都存在则返回TRUE($ true),如果缺少则返回FALSE($ false)

如果您只想要匹配的实际文件名,请使用Get-Item,因为它支持标准通配符。您可以从System.IO.FileInfo返回的Get-Item个对象中获取信息。