我正在编写一个Windows批处理文件来简化一些文档的生成,我对此还比较陌生。其中一部分涉及查询我的git存储库以查找两个最新的发布标签。一旦我获得了这些标签,我打算使用git log命令将输出写入另一个目录中的文本文件。
如果我将标签名称作为常量写入 git log 命令,我就能够将 git log 的输出写入文本文件,但是当我使用存储了标签名称的变量时,我只能在 cmd 窗口中看到输出,并且生成的文本文件是空白的。
使用下面已知的标签运行将在命令窗口和文本文件中输出
git log --format="%%s" OLD_RELEASE..NEW_RELEASE > "C:\Documentation\Commits.txt"
命令窗口和输出文本文件中的输出如下所示,并与 git 中的注释一致(我知道注释很差,但我试图故意使这些信息保持模糊)
V3.1.2.0 19 Sept
V3.1.1.2 6 August
V3.1.1.1 16 July
V3.1.1.1 15 July
V3.1.2.0 14 July
535 indicator added to setup screen
fault 4 severity level reduced from non-threatening
但是,如果我首先搜索标签以确定两个标签名称并将它们设置为变量“OldTag”和“NewTag”,然后使用相同的命令但格式如下,我会在命令窗口和提交消息列表中看到正确的相同命令,但输出文本文件是空白的。
git log --format="%%s" %OldTag%..%NewTag% > "C:\Documentation\Commits.txt"
我发现,运行一个混合命令,其中第二个变量被用作硬编码值,似乎可以与写入文本文件的输出兼容。因此,似乎第二个变量的使用阻止了输出命令的运行
git log --format="%%s" %OldTag%..NEW_RELEASE > "C:\Documentation\Commits.txt"