User Tools

Site Tools


action:Switch_or_Case

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
action:Switch_or_Case [2016/03/28 08:37]
AlainLifchitz add internal links + forum Google search
action:Switch_or_Case [2021/10/15 01:32]
peternlewis [Conditions]
Line 1: Line 1:
-The //Switch or Case action// lets you read a string from the System Clipboard, from a Named Clipboard, from a variable, or from a file and then match it against various other strings to choose which set of actions to do.+====== Switch/Case Action ======
  
-The action ​contains ​sequence of conditional segments, each of which tests the source string and then conditionally executes the corresponding set of actions.+The //​Switch/​Case ​action// is used to perform different actions based on different values of common _parameter_. ​ It is very similar to the [[https://​developer.mozilla.org/​en-US/​docs/​Web/​JavaScript/​Reference/​Statements/​switch|JavaScript Switch]] statement.
  
-The condition can test the source and see if:+The _Switch_ Action is a good alternative to using multiple, nested, [[action:If_Then_Else|If/​Then]] Actions.
  
-* has text of some sort. +===== Parameters =====
-* does not have text. +
-* has an image of some sort. +
-* does not have an image. +
-* is exactly (case insensitively) a specified string. +
-* is not exactly (case insensitively) a specified string. +
-* contains (case insensitively) a specified string. +
-* does not contain (case insensitively) a specified string. +
-* matches a specified regular expression. +
-* does not match a specified regular expression. +
-* has some flavor that conforms to the specified [Uniform Type Identifier](https://​en.wikipedia.org/​wiki/​Uniform_Type_Identifier). +
-* does not have a flavor that conforms to the specified Uniform Type Identifier. +
-* otherwise (aka always).+
  
-In all cases at most one sequence will execute, and the conditions are evaluated in order - the first one that matches will execute. So don't put an "​otherwise"​ clause in the middle of your switch statement.+The Switch _parameter_ may be any of the following:​ 
 +  * [[:​Clipboards|System Clipboard]] 
 +  * [[:​Clipboards#​Named_Clipboards|Named Clipboard]] 
 +  * [[token:​TriggerClipboard|Trigger Clipboard]] 
 +  * [[manual:​Variables|Keyboard Maestro Variable]] 
 +  * Text (which can use [[:​Tokens|Tokens]]) 
 +  * [[manual:​Calculations|Calculation]] 
 +  * File
  
-===== See Also =====+===== Default Configuration ​=====
  
-----+When you insert the _Switch_ Action, it is configured to switch based on the _System Clipboard_, but can be easily changed to other parameters. ​ It initially looks like this: 
 + 
 +{{:​action:​switch-case.png?​nolink|}} 
 + 
 +For each _Condition_ that you add, you can enter zero or more _Actions_ that will be executed when that _Condition_ is met.  After those _Action(s)_ are executed, or if no _Conditions_ are met, the _Switch_ Action is exited. 
 + 
 +===== Conditions ===== 
 + 
 +The _Conditions_ available depend on the _Parameter_ that is chosen (for example, you cannot use *has an image* with a calculation). 
 + 
 +The _Conditions_ are defined as follows: 
 + 
 +^Condition^Definition^ 
 +|is empty|The text is contains no characters.| 
 +|is not empty|The text is contains some characters.| 
 +|has text |Clipboard has at least one item containing text of some sort.| 
 +|does not have text |Clipboard does not have any text items.| 
 +|has image |Clipboard has one or more images.| 
 +|does not have image |Clipboard does not have any images.| 
 +|is |is exactly (case insensitive) the specified string.| 
 +|is not |is not exactly (case insensitive) the specified string.| 
 +|contains |contains (case insensitive) the specified string.| 
 +|does not contain |does not contain (case insensitive) the specified string.| 
 +|starts with |starts with the specified string.| 
 +|ends with |ends with the specified string.| 
 +|is before |is alphabetically before the specified string. (v7.2+)| 
 +|is after |is alphabetically after the specified string. (v7.2+)| 
 +|matches |matches the specified regular expression.| 
 +|does not match |does not match the specified regular expression.| 
 +|is <|is numerically less than.| 
 +|is <=|is numerically less than or equal.| 
 +|is =|is numerically equal.| 
 +|is >=|is numerically greater than or equal.| 
 +|is >|is numerically greater than.| 
 +|is !=|is numerically not equal.| 
 +|conforms to |Clipboard has an item with the UTI class that conforms to the specified [Uniform Type Identifier](https://​en.wikipedia.org/​wiki/​Uniform_Type_Identifier).| 
 +|does not conform to |Clipboard does not have an item with the UTI class that conforms to the specified Uniform Type Identifier.| 
 +|otherwise |will execute if none of the Conditions in the Switch, that are entered above _otherwise_,​ are met.| 
 + 
 + 
 +The _Otherwise_ _Condition_ will execute if none of the previous _Conditions_ are met.  The _Switch_ Action will then exit.  So, the _Otherwise_ _Condition_ should always be placed as the last _Condition_ in the _Switch_ Action. 
 + 
 +===== See Also =====
  
 === Actions === === Actions ===
  
 * [[action:If Then Else|If Then Else]] * [[action:If Then Else|If Then Else]]
-* [[action:Pause|Pause Until Conditions Met]]+* [[action:Pause_Until|Pause Until Conditions Met]]
 * [[action:​Until|Execute Action Until Conditions Met]] * [[action:​Until|Execute Action Until Conditions Met]]
 * [[action:​While|Execute Action While Conditions Met]] * [[action:​While|Execute Action While Conditions Met]]
Line 36: Line 73:
  
 * [[:​Conditions|See all Conditions]] * [[:​Conditions|See all Conditions]]
- 
----- 
  
 ==== Forum ==== ==== Forum ====
  
-- [[https://www.google.fr/search?​q=site:​forum.keyboardmaestro.com+Switch+action|Keyboard Maestro Forum topics about Switch or Case action]] +- [[https://forum.keyboardmaestro.com/t/​action-switch-case-based-on-frontmost-app/​7294|ACTIONSwitch Case Based on FrontMost App]] 
 +- [[https://forum.keyboardmaestro.com/search?q=Switch%20action|Keyboard Maestro Forum topics about Switch or Case action]]
  
action/Switch_or_Case.txt · Last modified: 2022/09/17 22:49 by peternlewis