我有以下命令来检查路径“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}
我必须双重写入它的路径,而且我还需要进入它的内部将其设置为变量。
这可以用另一种更短或更简单的方式来完成吗?
试试这个(如果路径不存在,$NameFromDir将为空):
$DirPath = "C:\Test"
$DirName = "AAA"
$NameFromDir = (Get-Item "$DirPath\$DirName_*").FullName
如果您需要将结果限制为单个元素,您可以添加
| select-object -First 1
这是非常有用的代码,但我需要知道如何将输出限制为文件夹。 我看到有一个 -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"
}