pocof.dll-Help.xml
<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh"> <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp"> <command:details> <command:name>Select-Pocof</command:name> <command:verb>Select</command:verb> <command:noun>Pocof</command:noun> <maml:description> <maml:para>Selects objects from a collection based on interactive query.</maml:para> </maml:description> </command:details> <maml:description> <maml:para>The `Select-Pocof` cmdlet selects objects from a collection based on interactive query. For example, you can use the `Select-Pocof` cmdlet to select files that located current directory with interactive window.</maml:para> <maml:para>You can use 3 matching mode `Match`, `Like` or `Eq` and can use 3 operator mode `And` or `Or`.</maml:para> <maml:para>By default, the query matches to the stringified object. A query starting with a colon, such as `:property-name`, indicates a property query. In a property query, you can specify the property value using the format `:property-name property-value`. If you use a property query, the query will match to the specified object properties.</maml:para> <maml:para>Recommend using `$PSDefaultParameterValues` if you want to use a specific option. For example `Layout`, `Prompt` and so on.</maml:para> <maml:para>`$PSDefaultParameterValues = @{'Select-Pocof:Layout' = 'TopDownHalf'; 'Select-Pocof:Prompt'= ''}`</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Select-Pocof</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none"> <maml:name>InputObject</maml:name> <maml:description> <maml:para>Specifies the objects to filter. You can also pipe the objects to `Select-Pocof`.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">PSObject[]</command:parameterValue> <dev:type> <maml:name>PSObject[]</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>None</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>CaseSensitive</maml:name> <maml:description> <maml:para>Filtering in case-sensitive.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Keymaps</maml:name> <maml:description> <maml:para>Specifies the custom key bindings. Custom keymaps overrides default keymaps. Default keymaps are following.</maml:para> <maml:para></maml:para> <maml:para>| Action | Keybinding | Note |</maml:para> <maml:para>| ------------------------ | ---------------------- | -------------------- |</maml:para> <maml:para>| Cancel | `Escape` | |</maml:para> <maml:para>| Cancel | `Ctrl` + `C` | |</maml:para> <maml:para>| Finish | `Enter` | |</maml:para> <maml:para>| BackwardChar | `LeftArrow` | |</maml:para> <maml:para>| ForwardChar | `RightArrow` | |</maml:para> <maml:para>| BeginningOfLine | `Home` | |</maml:para> <maml:para>| EndOfLine | `End` | |</maml:para> <maml:para>| DeleteBackwardChar | `Backspace` | |</maml:para> <maml:para>| DeleteForwardChar | `Delete` | |</maml:para> <maml:para>| DeleteBackwardInput | `Ctrl` + `Home` | |</maml:para> <maml:para>| DeleteForwardInput | `Ctrl` + `End` | |</maml:para> <maml:para>| SelectBackwardChar | `Shift` + `LeftArrow` | |</maml:para> <maml:para>| SelectForwardChar | `Shift` + `RightArrow` | |</maml:para> <maml:para>| SelectToBeginningOfLine | `Shift` + `Home` | |</maml:para> <maml:para>| SelectToEndOfLine | `Shift` + `End` | |</maml:para> <maml:para>| RotateMatcher | `Alt` + `R` | |</maml:para> <maml:para>| RotateOperator | `Alt` + `L` | |</maml:para> <maml:para>| ToggleCaseSensitive | `Alt` + `C` | |</maml:para> <maml:para>| ToggleInvertFilter | `Alt` + `I` | |</maml:para> <maml:para>| ToggleSuppressProperties | `Ctrl` + `Spacebar` | |</maml:para> <maml:para>| SelectLineUp | `UpArrow` | Not implemented yet. |</maml:para> <maml:para>| SelectLineDown | `DownArrow` | Not implemented yet. |</maml:para> <maml:para>| ScrollPageUp | `PageUp` | Not implemented yet. |</maml:para> <maml:para>| ScrollPageDown | `PageDown` | Not implemented yet. |</maml:para> <maml:para>| CompleteProperty | `Tab` | |</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">Hashtable</command:parameterValue> <dev:type> <maml:name>Hashtable</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>None</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Layout</maml:name> <maml:description> <maml:para>Select the layout: TopDown, TopDownHalf, BottomUp or BottomUpHalf.</maml:para> </maml:description> <command:parameterValueGroup> <command:parameterValue required="false" command:variableLength="false">TopDown</command:parameterValue> <command:parameterValue required="false" command:variableLength="false">TopDownHalf</command:parameterValue> <command:parameterValue required="false" command:variableLength="false">BottomUp</command:parameterValue> <command:parameterValue required="false" command:variableLength="false">BottomUpHalf</command:parameterValue> </command:parameterValueGroup> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>TopDown</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Prompt</maml:name> <maml:description> <maml:para>Specifies the prompt that appears before the query input space.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>query</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Query</maml:name> <maml:description> <maml:para>Specifies the initial query string.</maml:para> <maml:para>The syntax of the query is simple. You separate the values you want to filter with a space.</maml:para> <maml:para>`Value1 Value2 Value3`</maml:para> <maml:para>The property query is a combination of the property name and the filtering value. The property name in the query starts with `:` followed by a space, and then the filter value like following.</maml:para> <maml:para>`:PropertyName FilteringValue`</maml:para> <maml:para>You can also combine normal filtering with property queries.</maml:para> <maml:para>`Value1 Value2 :PropertyName Value3`</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>None</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>InvertQuery</maml:name> <maml:description> <maml:para>Enabling `InvertQuery` will invert the filtering output.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Matcher</maml:name> <maml:description> <maml:para>Select the matching mode. You can use `Match`, `Like` or `Eq`.</maml:para> <maml:para>- `Match` provides regular expression matching</maml:para> <maml:para>- `Like` provides wildcard matching</maml:para> <maml:para>- `Eq` provides exact matching</maml:para> </maml:description> <command:parameterValueGroup> <command:parameterValue required="false" command:variableLength="false">Match</command:parameterValue> <command:parameterValue required="false" command:variableLength="false">Like</command:parameterValue> <command:parameterValue required="false" command:variableLength="false">Eq</command:parameterValue> </command:parameterValueGroup> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>Match</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>NonInteractive</maml:name> <maml:description> <maml:para>Enabling `NonInteractive` starts the application in non-interactive mode. Mainly used for testing purposes.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Operator</maml:name> <maml:description> <maml:para>Select the logical operator to use when specifying query strings. You can use `And` or `Or`.</maml:para> <maml:para>- `And` provides logical "And" to multi query generated from splitting query by whitespace</maml:para> <maml:para>- `Or` provides logical "Or" to multi query generated from splitting query by whitespace</maml:para> </maml:description> <command:parameterValueGroup> <command:parameterValue required="false" command:variableLength="false">And</command:parameterValue> <command:parameterValue required="false" command:variableLength="false">Or</command:parameterValue> </command:parameterValueGroup> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>And</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>SuppressProperties</maml:name> <maml:description> <maml:para>Enabling `SuppressProperties` will disable the display of properties under the query input.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Unique</maml:name> <maml:description> <maml:para>Enabling `Unique` will exclude duplicates in `InputObject`. `Unique` maintains the order of InputObject after excluding duplicates. `Unique` uses the `Equals` and `GetHashCode` methods of `InputObject` to check for equality.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>CaseSensitive</maml:name> <maml:description> <maml:para>Filtering in case-sensitive.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="0" aliases="none"> <maml:name>InputObject</maml:name> <maml:description> <maml:para>Specifies the objects to filter. You can also pipe the objects to `Select-Pocof`.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">PSObject[]</command:parameterValue> <dev:type> <maml:name>PSObject[]</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>None</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Keymaps</maml:name> <maml:description> <maml:para>Specifies the custom key bindings. Custom keymaps overrides default keymaps. Default keymaps are following.</maml:para> <maml:para></maml:para> <maml:para>| Action | Keybinding | Note |</maml:para> <maml:para>| ------------------------ | ---------------------- | -------------------- |</maml:para> <maml:para>| Cancel | `Escape` | |</maml:para> <maml:para>| Cancel | `Ctrl` + `C` | |</maml:para> <maml:para>| Finish | `Enter` | |</maml:para> <maml:para>| BackwardChar | `LeftArrow` | |</maml:para> <maml:para>| ForwardChar | `RightArrow` | |</maml:para> <maml:para>| BeginningOfLine | `Home` | |</maml:para> <maml:para>| EndOfLine | `End` | |</maml:para> <maml:para>| DeleteBackwardChar | `Backspace` | |</maml:para> <maml:para>| DeleteForwardChar | `Delete` | |</maml:para> <maml:para>| DeleteBackwardInput | `Ctrl` + `Home` | |</maml:para> <maml:para>| DeleteForwardInput | `Ctrl` + `End` | |</maml:para> <maml:para>| SelectBackwardChar | `Shift` + `LeftArrow` | |</maml:para> <maml:para>| SelectForwardChar | `Shift` + `RightArrow` | |</maml:para> <maml:para>| SelectToBeginningOfLine | `Shift` + `Home` | |</maml:para> <maml:para>| SelectToEndOfLine | `Shift` + `End` | |</maml:para> <maml:para>| RotateMatcher | `Alt` + `R` | |</maml:para> <maml:para>| RotateOperator | `Alt` + `L` | |</maml:para> <maml:para>| ToggleCaseSensitive | `Alt` + `C` | |</maml:para> <maml:para>| ToggleInvertFilter | `Alt` + `I` | |</maml:para> <maml:para>| ToggleSuppressProperties | `Ctrl` + `Spacebar` | |</maml:para> <maml:para>| SelectLineUp | `UpArrow` | Not implemented yet. |</maml:para> <maml:para>| SelectLineDown | `DownArrow` | Not implemented yet. |</maml:para> <maml:para>| ScrollPageUp | `PageUp` | Not implemented yet. |</maml:para> <maml:para>| ScrollPageDown | `PageDown` | Not implemented yet. |</maml:para> <maml:para>| CompleteProperty | `Tab` | |</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">Hashtable</command:parameterValue> <dev:type> <maml:name>Hashtable</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>None</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Layout</maml:name> <maml:description> <maml:para>Select the layout: TopDown, TopDownHalf, BottomUp or BottomUpHalf.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>TopDown</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Prompt</maml:name> <maml:description> <maml:para>Specifies the prompt that appears before the query input space.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>query</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Query</maml:name> <maml:description> <maml:para>Specifies the initial query string.</maml:para> <maml:para>The syntax of the query is simple. You separate the values you want to filter with a space.</maml:para> <maml:para>`Value1 Value2 Value3`</maml:para> <maml:para>The property query is a combination of the property name and the filtering value. The property name in the query starts with `:` followed by a space, and then the filter value like following.</maml:para> <maml:para>`:PropertyName FilteringValue`</maml:para> <maml:para>You can also combine normal filtering with property queries.</maml:para> <maml:para>`Value1 Value2 :PropertyName Value3`</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>None</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>InvertQuery</maml:name> <maml:description> <maml:para>Enabling `InvertQuery` will invert the filtering output.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Matcher</maml:name> <maml:description> <maml:para>Select the matching mode. You can use `Match`, `Like` or `Eq`.</maml:para> <maml:para>- `Match` provides regular expression matching</maml:para> <maml:para>- `Like` provides wildcard matching</maml:para> <maml:para>- `Eq` provides exact matching</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>Match</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>NonInteractive</maml:name> <maml:description> <maml:para>Enabling `NonInteractive` starts the application in non-interactive mode. Mainly used for testing purposes.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Operator</maml:name> <maml:description> <maml:para>Select the logical operator to use when specifying query strings. You can use `And` or `Or`.</maml:para> <maml:para>- `And` provides logical "And" to multi query generated from splitting query by whitespace</maml:para> <maml:para>- `Or` provides logical "Or" to multi query generated from splitting query by whitespace</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>And</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>SuppressProperties</maml:name> <maml:description> <maml:para>Enabling `SuppressProperties` will disable the display of properties under the query input.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none"> <maml:name>Unique</maml:name> <maml:description> <maml:para>Enabling `Unique` will exclude duplicates in `InputObject`. `Unique` maintains the order of InputObject after excluding duplicates. `Unique` uses the `Equals` and `GetHashCode` methods of `InputObject` to check for equality.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue> <dev:type> <maml:name>SwitchParameter</maml:name> <maml:uri /> </dev:type> <dev:defaultValue>False</dev:defaultValue> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>`System.Management.Automation.PSObject[]`</maml:name> </dev:type> <maml:description> <maml:para></maml:para> </maml:description> </command:inputType> </command:inputTypes> <command:returnValues> <command:returnValue> <dev:type> <maml:name>`System.Management.Automation.PSObject`</maml:name> </dev:type> <maml:description> <maml:para></maml:para> </maml:description> </command:returnValue> </command:returnValues> <maml:alertSet> <maml:alert> <maml:para>Includes the following aliases for `Select-Pocof`</maml:para> <maml:para>- `pocof`</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>Example 1: Get current directory items with interactive filtering</maml:title> <dev:code>PS C:\> Get-ChildItem | Select-Pocof</dev:code> <dev:remarks> <maml:para>Interactively filter the output of `Get-ChildItem`.</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>----------- Example 2: Filter with multiple options -----------</maml:title> <dev:code>PS C:\> Get-ChildItem | Select-Pocof -CaseSensitive -Query 'docs md' | Invoke-Item</dev:code> <dev:remarks> <maml:para>Interactively filter the output of `Get-ChildItem` with an initial case-sensitive query. And performs the default action on the filtered items.</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>------------ Example 3: Filter with property query ------------</maml:title> <dev:code>PS C:\> Get-ChildItem | Select-Pocof -NonInteractive -Query ':Name foo'</dev:code> <dev:remarks> <maml:para>Interactively filter the output of `Get-ChildItem` using a property query. The property name in the query starts with `:` followed by a space, and then the filter value. The format is as follows.</maml:para> </dev:remarks> </command:example> <command:example> <maml:title>----------------- Example 4: Filter hashtable -----------------</maml:title> <dev:code>PS C:\> @{foo=100; bar=101; foobar=102} | Select-Pocof -NonInteractive -Query ':key foo' | % -Begin {$x = @{}} {$x[$_.Key]= $_.Value} -End {$x}</dev:code> <dev:remarks> <maml:para>Interactively filter hashtable and create new hashtable from filtered items.</maml:para> </dev:remarks> </command:example> </command:examples> <command:relatedLinks> <maml:navigationLink> <maml:linkText>Online Version:</maml:linkText> <maml:uri>https://github.com/krymtkts/pocof/blob/main/docs/Select-Pocof.md</maml:uri> </maml:navigationLink> </command:relatedLinks> </command:command> </helpItems> |