User Tools

Site Tools


manual:Variables

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 Both sides next revision
manual:Variables [2018/08/05 21:56]
peternlewis
manual:Variables [2019/06/14 02:52]
peternlewis
Line 1: Line 1:
 ====== Variables ====== ====== Variables ======
  
-Like most programming languages, Keyboard Maestro allows you, the Macro builder, ​to create Variables to store data for use later on in the same Macro, or in other Macros. ​ So, your use of Variables can include the following:+Like most programming languages, Keyboard Maestro allows you to create Variables to store data for use later on in the same Macro, or in other Macros.
  
-* Set a Variable using any of these [[:​Actions|Macro Actions]]:​ +Variables can be set from many actions. ​ You can set variables to specific ​[[manual:Tokenstokenised]] text, to the result of a [[manual:Calculationscalculations]], from user input, from the Keychain, by searching ​other variables, ​from the [[token:​CurrentClipboard| ​clipboard]] or [[token:​NamedClipboard|Named Clipboards]], as the result of [[:​Scripting|scripts]], and from many other sources.
-  [[action:Set_Variable_to_Text|Set Variable to Text Action]] +
-  * [[action:​Set_Variable_to_Calculation|Set Variable ​to Calculation Action]] +
-  * [[action:Prompt_for_User_Input|Prompt For User Input]] and other _Prompt_ Actions +
-  * [[action:​Search_Variable|Capture Groups ​from RegEx Search]] of Variable or Clipboard +
-  * The [[token:​CurrentClipboard|System Clipboard]] and [[token:​NamedClipboard|Named Clipboards]] +
-  * Other [[:​Actions|Macro Actions]] +
-  * Other [[:​Tokens|Tokens]] +
-* Get or Set Keyboard Maestro Variables using [[:​Scripting|Scripting]] +
-* Reference a Variable using the [[token:​Variable|Variable Token]]: ​ `%Variable%YourVarName%` +
-* And other means discussed below.+
  
 ===== Scope ===== ===== Scope =====
  
  
-Keyboard Maestro includes variables with three different scopes ​of allowed access, in order of scope, with broadest scope first:+Keyboard Maestro includes variables with different ​breadth or scopes, in order of scope, with broadest scope first:
  
 ^ Scope ^ Availability ^ ^ Scope ^ Availability ^
 | **Global**, Permanent variables | • Available Everywhere, including Scripts and Preferences. | | **Global**, Permanent variables | • Available Everywhere, including Scripts and Preferences. |
-| **Password**, ​Permanent ​variables | • Available to macros but not displayed.\\ • Not directly accessible via AppleScript.\\ ​Displayed ​in password fields in Prompt For User Input actions. | +| **Password**, ​Semi-permanent ​variables | • Available to macros but not displayed.\\ • Not directly accessible via AppleScript.\\ ​• Concealed ​in password fields in Prompt For User Input actions.\\ • Not saved to disk. | 
-| **Instance** Variables (v8+) | • Restricted ​ to a specific execution sequence.\\ • Available to the Macro where it was created ​AND Sub-Macros of that Macro, for a given execution instance of the main macro.\\ • So these Variables are private to each execution of the same Macro, even when running simultaneously.\\ • Available to [[action:​Prompt_for_User_Input|Prompt For User Input]]\\ • As of v8.0.3, is available to scripts (when used in an Execute Script Action)[[action:​Custom_HTML_Prompt|HTML Prompt]] | +| **Instance** Variables (v8+) | • Restricted ​ to a specific execution sequence.\\ • Available to the Macro where it was created ​and Sub-Macros of that Macro, for a given execution instance of the main macro.\\ • These Variables are private to each execution of the same Macro, even when running simultaneously.\\ • Available to [[action:​Prompt_for_User_Input|Prompt For User Input]]\\ • As of v8.0.3, is available to scripts (when used in an Execute Script Action).\\ • Available in the [[action:​Custom_HTML_Prompt|Custom ​HTML Prompt]] ​(v8.0.3+).\\ • Available via AppleScript with the instance specifier. ​
-| **Local** Variables (v8+) | • Restricted to Macro where it was created\\ • //Not// Available to any of its Sub-Macros\\ • Available to [[action:​Prompt_for_User_Input|Prompt For User Input]]\\ • As of v8.0.3, is available to scripts (when used in an Execute Script Action), [[action:​Custom_HTML_Prompt|HTML Prompt]] ​|+| **Local** Variables (v8+) | • Restricted to Macro where it was created\\ • //Not// Available to any of its Sub-Macros\\ • Same availability as Instance Variables. |
 | **[[manual:​Dictionaries|Dictionary]]**,​ Permanent, global in scope. | • Available Almost Everywhere, including Scripts, but //not// Preferences.\\ • Dictionaries consist of the //​Dictionary Name//, One or more pairs of //Key Name//, and //Value//\\ • Although Dictionaries are like //​Variables//,​ they are kept in a separate category called //​[[manual:​Dictionaries|Dictionaries]]//​. | | **[[manual:​Dictionaries|Dictionary]]**,​ Permanent, global in scope. | • Available Almost Everywhere, including Scripts, but //not// Preferences.\\ • Dictionaries consist of the //​Dictionary Name//, One or more pairs of //Key Name//, and //Value//\\ • Although Dictionaries are like //​Variables//,​ they are kept in a separate category called //​[[manual:​Dictionaries|Dictionaries]]//​. |
  
Line 190: Line 180:
  
 Local and Instance Variables are _not_ accessible from either the Preferences Window or from Scripting. Local and Instance Variables are _not_ accessible from either the Preferences Window or from Scripting.
- 
manual/Variables.txt · Last modified: 2023/09/29 04:44 by peternlewis