了解cmd shell中的variables

Windows的一些shell脚本中,我find了一些我无法理解的语法。 如果有人让病人解释我做了什么,为什么这样做会很好。

第一件事是什么! 是关于。 一些variables被包围了! 我不明白其中的原因例如:

!DATE! !timeMM:~0,1! ... 

其次是(我猜的是)一种variables替代。 有些variables以:"=结尾,但我不知道它做了什么。例如:

 set cmdlin=%cmdlin:"=% 

非常感谢

  1. 感叹号用于延迟变量扩展。 你可以阅读更多关于它在cmd /?

  2. 是的,这是替代。 在这种情况下,双引号被替换为空字符串。 你可以阅读更多关于它在set /?