我创建了一个简单的单行批处理文件,以我的首选格式运行git日志。当我在PowerShell中时,我输入:Git命令行和批处理文件有不同的输出
git log --pretty=format:"%ai%x09%H%x09%s" > commitlog.csv
它给了我完全我想要的输出。它是ISO格式的提交作者的日期和时间,后跟一个制表符,后面是完整的SHA哈希表,后面是选项卡,后面是注释/说明。它完全按照我想要的方式在Excel中打开。
我试图做一个简单的批处理文件来做同样的事情,所以我不必记住格式字符串或搜索命令历史记录(无论如何,它有时会被清除)。我注意到我必须使用双重百分比,%%替换所有百分号。
在批处理文件的一个版本我有这样一行:
git log --pretty=format:"%%ai%%x09%%H%%x09%%s" > commitlog.csv
其中我注意到回声像这样的命令:
git log --pretty=format:"%ai%x09%H%x09%s" 1>commitlog.csv
其中有一个“1”突然插入到它的一些原因,但奇怪地创建了一个包含这些信息的文件,只是排除了标签,所以它们一起运行。我读了大于“>”需要由克拉来之前,像这样“^>”
因此,在批处理文件的下一个版本,我改了行这样:
git log --pretty=format:"%%ai%%x09%%H%%x09%%s" ^> commitlog.csv
其中回声像这样的命令:
git log --pretty=format:"%ai%x09%H%x09%s" > commitlog.csv
我已经盯着看很长一段时间,很多次,似乎正是我在PowerShell中键入,我会期望得到同样的结果,但相反,我收到一条错误消息:
fatal: ambiguous argument '>': unknown revision or path not in the
working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
我在做什么错?
我的Windows程序没有与换行符有关的问题,一切都在它本应该是的行上。无论如何,我尝试了你的建议,但添加%% x0D并没有改变我的输出结果。出于某种奇怪的原因,当我运行批处理文件时,实际上并没有添加TABS(%% x09),每一行中的数据只是一起运行。 – Trashman 2015-04-02 13:00:16
而.tsv不是Excel识别的文件类型,所以我不使用它。它可以解析csv文件,而不管使用什么实际的分隔符。 – Trashman 2015-04-02 13:02:39