gpt4 book ai didi

windows - 批处理文件中的 git archive "The input line is too long. "错误

转载 作者:可可西里 更新时间:2023-11-01 10:23:40 27 4
gpt4 key购买 nike

我设法从各种来源修改了我发现的脚本,以创建在 2 个变更集之间添加或更改的文件的存档。批处理脚本如下:

setlocal enabledelayedexpansion
set output=
for /f "delims=" %%a in ('git diff --name-only %1 %2') do ( set output=!output! "%%a" )
git archive -o export.zip HEAD %output%
endlocal

这在今天之前一直很好用,突然间我收到了以下错误:

The input line is too long. The syntax of the command is incorrect.

我已经确认造成这种情况的原因是 %output% 的结果太长,但不确定是否或如何解决这个问题?

最佳答案

如果你想在两次提交之间导出更改的文件,为什么不(而不是依赖于设置的 DOS 变量,并且可能太长)做一个:

git archive --output=file.zip HEAD $(git diff --name-only SHA1 SHA2)

因为它是 Unix 语法,所以你需要调用 Git for Windows 中包含的 sh.exe(正如我在“What is the exact meaning of Git Bash? ”中提到的)

OP ProNotion 提议 in the comments :

"C:\Program Files (x86)\Git\bin\sh.exe" --login -i -c "git archive -o export.zip HEAD $(git diff --name-only %1 %2)" 

关于windows - 批处理文件中的 git archive "The input line is too long. "错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24456200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com