将字符串的一部分转换为大写

时间:2017-03-31 09:07:39

标签: powershell

我自动从应用程序中获取目录,但我似乎无法获得具有正确字母大小写的实际目录。

例如,我得到$a='C:\test\dir\log\wqerst',但实际目录为C:\test\dir\log\WQERST

我想要的只是大写wqerst所以它会显示C:\test\dir\log\WQERST

我已经尝试使用substring,但我不知道如果它是大写的,我将如何将它连接到整个目录。

2 个答案:

答案 0 :(得分:1)

由于James C.vonPryz已经写过,因此获取区分大小写的文件夹路径并不重要。但是,您可以使用此辅助方法:

function Get-CaseSensitiveFilePath
{
    Param
    (
        [string]$FilePath
    )
    $parent = Split-Path $FilePath
    $leaf = Split-Path -Leaf $FilePath

    $result = Get-ChildItem $parent | where { $_ -like $leaf }
    $result.FullName
}

<强>用法:

Get-CaseSensitiveFilePath -FilePath 'C:\test\dir\log\WQERST'

这将为您提供区分大小写的文件夹名称,但该目录必须存在于您执行脚本的计算机上...

答案 1 :(得分:1)

Windows系统不区分大小写,但如果你真的想要这个结果,你可以这样做:

$a='C:\test\dir\log\wqerst' 
$parentpath=Split-Path -Path $a
$file=(Split-Path -Path $a -Leaf).ToUpper()
$result=Join-Path $parentpath $file

$result