如何使用Get-ChildItem仅输出PS1文件所在的目录路径?
解决方法
你需要提取每个PS1文件的目录路径,并可根据需求选择是否去重(避免同一目录重复输出),以下是修改后的命令:
基础版(保留所有目录,含重复项)
Get-ChildItem -Path C:\repos -Filter *.ps1 -File -ErrorAction SilentlyContinue -Recurse | Select-Object -ExpandProperty DirectoryName | Out-File C:\repos\psfiles.txt -Encoding ASCII
去重版(同一目录仅输出一次)
如果同一目录下存在多个PS1文件,只保留一次目录路径的话,可添加去重逻辑:
Get-ChildItem -Path C:\repos -Filter *.ps1 -File -ErrorAction SilentlyContinue -Recurse | Select-Object -ExpandProperty DirectoryName | Select-Object -Unique | Out-File C:\repos\psfiles.txt -Encoding ASCII
命令说明
Select-Object -ExpandProperty DirectoryName:从文件对象中提取DirectoryName属性值,仅输出文件所在的完整目录路径,而非整个文件对象的冗余信息。Select-Object -Unique:过滤重复的目录路径,确保每个目录仅出现一次。
内容的提问来源于stack exchange,提问作者itye1970
相关产品推荐
相关产品推荐

