Windows PowerShell:如何同时显示文件路径、名称与LastWriteTime
解决PowerShell中Out-GridView无法展示文件路径的问题
嘿,我来帮你搞定这个小问题!你的代码逻辑顺序有点小偏差,导致没法看到文件路径,而且后续的Select也没法精准输出你想要的内容,我给你梳理下解决办法:
问题出在哪?
你原来的代码:
dir -r | Out-GridView | Select FullName, LastWriteTime
这里的核心问题是:Out-GridView默认会展示dir返回对象的默认属性(比如Name、Length这类),不会主动显示FullName;而且只有当你在GridView窗口里选中某些文件/文件夹并关闭窗口后,选中的对象才会被传到后面的Select环节——要是没选任何内容,后面自然就没输出,更看不到路径了。
解决方案1:先选属性再进GridView
最简单的调整就是把管道顺序换一下,先提取你需要的属性,再送到Out-GridView,这样打开的窗口里就能直接看到完整路径和修改时间了:
dir -r | Select FullName, LastWriteTime | Out-GridView
这样GridView里会直接显示FullName(完整文件路径)和LastWriteTime两个列,一目了然。而且如果你选中某些项关闭窗口,这些选中的对象也会保留这两个属性,方便后续处理。
解决方案2:拆分路径和文件名成单独属性
如果你想把文件所在路径和单纯的文件名分开显示(比如一个列存路径,一个列存文件名),可以用计算属性来实现:
dir -r | Select ` @{Name='FilePath'; Expression={$_.DirectoryName}}, ` @{Name='FileName'; Expression={$_.Name}}, ` LastWriteTime ` | Out-GridView
这里我们自定义了两个属性:
FilePath:提取文件所在的目录路径(对应对象的DirectoryName属性)FileName:提取不带路径的纯文件名(对应对象的Name属性)
再加上原生的LastWriteTime,这样GridView里的内容会更清晰,路径和文件名的区分度更高。
内容的提问来源于stack exchange,提问作者Ben Klein
相关产品推荐
相关产品推荐

