在存储在磁盘上的情况下获取文件名?

Modified on: Fri, 12 Jul 2019 02:00:01 +0800

我有一个文件README.TXT。如果我发出以下命令:

PS> Get-Item ReadMe.txt

...然后返回“ReadMe.txt”。我想找出磁盘上文件的实际名称,包括case。如何让它返回“README.TXT”?

我问,因为我试图追踪Windows上的不区分大小写的文件名与Unix上的区分大小写的文件的问题,我希望得到Windows框中使用的实际案例。

更多细节:我有一个文件列表(存储在.CSPROJ文件中),这些文件与存储在磁盘上的文件不同。我想确保它们匹配。例如:如果.CSPROJ文件显示“ReadMe.txt”,但磁盘上的文件是“README.TXT”,有时在Visual Studio中编辑该文件会将文件重写为“ReadMe.txt”然后混淆Perforce,因为它区分大小写,文件名不再具有预期的情况。我想写一个脚本来发现不匹配的文件名,这样我就可以在它出现问题之前对它们做点什么。

最佳答案

这就是我想出的:

function Get-ActualFileName($file) {
    $parent = Split-Path $file
    $leaf = Split-Path -Leaf $file

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

相关问答

添加新评论