diff --git a/extensions/bat/syntaxes/Batch File.tmLanguage b/extensions/bat/syntaxes/Batch File.tmLanguage
index dc106c723c8..3c97a70b4c2 100644
--- a/extensions/bat/syntaxes/Batch File.tmLanguage
+++ b/extensions/bat/syntaxes/Batch File.tmLanguage
@@ -90,6 +90,44 @@
match
(?i)(%%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?[a-z]
+
+ captures
+
+ 1
+
+ name
+ variable.other.parsetime.begin.shell
+
+ 2
+
+ name
+ variable.other.parsetime.end.shell
+
+
+ name
+ variable.other.parsetime.dosbatch
+ match
+ (%)[^%]+(%)
+
+
+ captures
+
+ 1
+
+ name
+ variable.other.delayed.begin.shell
+
+ 2
+
+ name
+ variable.other.delayed.end.shell
+
+
+ name
+ variable.other.delayed.dosbatch
+ match
+ (!)[^!]+(!)
+
begin
"