我正在尝试构建一个函数,该函数将显示某个文件名所在的所有路径。该函数将采用一个参数,即文件名。
结果要么是所有路径的列表,要么是一条消息说系统上没有这样的文件。
我是 Powershell 新手,目前还没有掌握语法。
我试过这个:
Get-ChildItem -Path -Include notepad.exe
但这引发了错误消息。我目前正在尝试:
$i="notepad.exe"
Foreach ($i in Get-ChildItem c:\ -Recurse){echo -Path}
现在开始了,它仍在运行,不知道会发生什么,真的。
编辑:回显大量只写“-Path”的行......
有人可以帮助解决这个问题吗?顺便说一句,我正在运行 Powershell 1.0。
因此,为了解释我在执行此命令时希望看到的内容,以下是查找 *.txt 后我期望看到的内容的示例:
C:/foo.txt
C:/A/foobar.txt
C:/A1/foo.txt
依此类推,列出了我的硬盘上所有 .txt 文件的路径。只有路径,每行一个,不需要额外的信息。
EDIT2:
我已经做到了。我会把这个问题留给那些将来寻找这个问题的人。
我使用的函数是这样的(这个具体示例将为您提供硬盘驱动器上所有 .zip 文件的列表,根据需要进行编辑):
Get-ChildItem -Path c:\ -Include "*.zip" -Recurse -Force -Name > c:\listOfPaths.txt
这在我的 C:\ 文件夹上创建了一个名为 listOfPaths.txt 的文件,其中包含硬盘驱动器所有子文件夹中所有以 .zip 结尾的文件的所有出现的列表。
没有提到“c:\”位,但我不介意。
EDIT3:
感谢 capar 提供更完整的版本。
这是 capar 的代码(或者我如何让它工作,因为 Get-Children 在 1.0 中不起作用)
Get-ChildItem -Path c:\ -Recurse *.txt | Select-Object -Property FullName