POWERSHELL 使用 WHERE 命令搜索文件路径
POWERSHELL searching for path to files using WHERE command
我在使用 where 命令时遇到问题。我必须在 C:\Program Files 中搜索特定的 exe 文件及其输出路径。
这是一个脚本,可以按照您想要的方式执行某些操作:
Get-ChildItem -Path $env:ProgramFiles -Recurse -Filter '*.exe' -ErrorAction SilentlyContinue | Where-Object {$_.FullName -like '*git*'} | Select-Object FullName
Get-ChildItem
列出给定路径下的所有文件和文件夹
-Path $env:ProgramFiles
将环境变量 "ProgramFiles" 的值(即程序文件目录的路径)发送到 Get-ChildItem
的 Path 参数
-Recurse
表示包含子文件夹(一直向下)。
-Filter '*.exe'
表示仅 return 扩展名为 .exe 的文件。
-ErrorAction SilentlyContinue
表示 "if some issue occurs (e.g. you don't have access to a folder) don't throw up error messages; just carry on"。
|
是一个管道字符/表示将当前命令的每个输出发送到下一个命令的管道输入。 IE。在这种情况下,Get-ChildItem
是 return 一堆 FileSystemInfo
对象,一个一个地传递给 Where-Object
进行过滤。
Where-Object
计算一个布尔表达式;任何评估为 true
的东西都会通过管道进行;任何导致 false
的结果都会通过所有进一步的操作得到 blocked/ignored。
{$_.FullName -like '*git*'}
是要评估的条件。 $_
为当前管道变量;即从 Get-ChildItem
命令的输出传递的每个 FileSystemInfo 对象。 FullName
是表示 file/folder 的完整路径(例如 "c:\program files\something\somethingelse\file.exe"
。-like '*git*'
表示“return 完整路径包含文本 git
在路径中(即 *
是通配符。
| Select-Object FullName
然后获取由 Where-Object
传递的结果(即符合条件的结果),以及 returns 单个 属性,FullName
来自那些对象;所以你得到了 exe 路径的列表,而不是从 FileSystemInfo 对象中描述它们的所有属性。
可在此处找到完整的 PowerShell 文档:https://docs.microsoft.com/en-us/powershell/
有关任何特定命令的帮助,请键入 Get-Help command
,例如Get-Help Get-ChildItem
.
我在使用 where 命令时遇到问题。我必须在 C:\Program Files 中搜索特定的 exe 文件及其输出路径。
这是一个脚本,可以按照您想要的方式执行某些操作:
Get-ChildItem -Path $env:ProgramFiles -Recurse -Filter '*.exe' -ErrorAction SilentlyContinue | Where-Object {$_.FullName -like '*git*'} | Select-Object FullName
Get-ChildItem
列出给定路径下的所有文件和文件夹-Path $env:ProgramFiles
将环境变量 "ProgramFiles" 的值(即程序文件目录的路径)发送到Get-ChildItem
的 Path 参数
-Recurse
表示包含子文件夹(一直向下)。-Filter '*.exe'
表示仅 return 扩展名为 .exe 的文件。-ErrorAction SilentlyContinue
表示 "if some issue occurs (e.g. you don't have access to a folder) don't throw up error messages; just carry on"。|
是一个管道字符/表示将当前命令的每个输出发送到下一个命令的管道输入。 IE。在这种情况下,Get-ChildItem
是 return 一堆FileSystemInfo
对象,一个一个地传递给Where-Object
进行过滤。Where-Object
计算一个布尔表达式;任何评估为true
的东西都会通过管道进行;任何导致false
的结果都会通过所有进一步的操作得到 blocked/ignored。{$_.FullName -like '*git*'}
是要评估的条件。$_
为当前管道变量;即从Get-ChildItem
命令的输出传递的每个 FileSystemInfo 对象。FullName
是表示 file/folder 的完整路径(例如"c:\program files\something\somethingelse\file.exe"
。-like '*git*'
表示“return 完整路径包含文本git
在路径中(即*
是通配符。| Select-Object FullName
然后获取由Where-Object
传递的结果(即符合条件的结果),以及 returns 单个 属性,FullName
来自那些对象;所以你得到了 exe 路径的列表,而不是从 FileSystemInfo 对象中描述它们的所有属性。
可在此处找到完整的 PowerShell 文档:https://docs.microsoft.com/en-us/powershell/
有关任何特定命令的帮助,请键入 Get-Help command
,例如Get-Help Get-ChildItem
.