diff --git a/extensions/bat/syntaxes/Batch File.tmLanguage b/extensions/bat/syntaxes/Batch File.tmLanguage
index bc52ff5486d..dc106c723c8 100644
--- a/extensions/bat/syntaxes/Batch File.tmLanguage
+++ b/extensions/bat/syntaxes/Batch File.tmLanguage
@@ -62,6 +62,34 @@
match
\s*:\s*:.*$
+
+ captures
+
+ 1
+
+ name
+ variable.parameter.function.begin.shell
+
+
+ name
+ variable.parameter.function.dosbatch
+ match
+ (?i)(%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?\d
+
+
+ captures
+
+ 1
+
+ name
+ variable.parameter.loop.begin.shell
+
+
+ name
+ variable.parameter.loop.dosbatch
+ match
+ (?i)(%%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?[a-z]
+
begin
"