检查是否[通配符]文件夹存在并设置为变量

问题描述 投票:0回答:2

我有以下命令来检查路径“C:\Test”中是否存在包含名称“AAA_*”的文件夹,如果存在,则从其创建名称变量:

$DirPath = "C:\Test"
$DirName = "AAA"
If (Test-Path -Path ($DirPath + "\" + $DirName + "_*")) {                                               
C:;cd\;cd ($DirPath + "\" + $DirName + "_*")
$NameFromDir = pwd | Select-Object | %{$_.ProviderPath.Split("\")[-1]}
cd $PSScriptRoot}

我必须双重写入它的路径,而且我还需要进入它的内部将其设置为变量。

这可以用另一种更短或更简单的方式来完成吗?

powershell variables directory pwd
2个回答
2
投票

试试这个(如果路径不存在,$NameFromDir将为空):

$DirPath = "C:\Test"
$DirName = "AAA"
$NameFromDir = (Get-Item "$DirPath\$DirName_*").FullName

如果您需要将结果限制为单个元素,您可以添加

| select-object -First 1

0
投票

这是非常有用的代码,但我需要知道如何将输出限制为文件夹。 我看到有一个 -Directory 设置,但我无法让它工作。

下面是我的代码示例。 任何帮助将不胜感激。

$FileFirst4Char=$file._Name.substring(0,4)
$FolderSearchStr=$dxfNetworkFolder + $FileFirst4Char+"*"
if (($namefromdir=(get-item "$FolderSearchStr").fullname) | select-object -First 1) {
    $dxfNetworkFolder=$namefromdir
    }
    else {
    $dxfNetworkFolder=$dxfNetworkFolder + "MISCELLANEOUS - DRAWINGS"
}
© www.soinside.com 2019 - 2024. All rights reserved.