无法在 Windows 批处理下的“git.exe fetch origin”中使用管道
Posted
技术标签:
【中文标题】无法在 Windows 批处理下的“git.exe fetch origin”中使用管道【英文标题】:Can't using pipe within "git.exe fetch origin" under Windows batch 【发布时间】:2012-05-27 14:04:36 【问题描述】:我写了一个批处理来检查和部署来自 github 的 rails 应用程序,批处理文件见下文。问题是git.exe fetch origin | find "remote: Counting Objects"
总是返回errorlevel 1
,即使我们有新的提交。我必须先终止 Rails 应用程序,因为某些文件被锁定 (*.jars
) 并导致 git pull
命令失败。
我搜索并找到了以下主题,但即使使用git.exe
而不是git.cmd
,问题仍然存在。
我尝试使用临时文件来存储git.exe fetch origin
结果,但如果看起来这个命令总是将结果打印到控制台。
还有:
git pull | find "Already up-to-date."
if %errorlevel% == 1 (
工作正常
REM @echo 关闭 设置路径=%path%;C:\Program Files\Git\bin;D:\jruby-1.6.7\bin 设置 JRUBY_OPTS=--1.9 git.exe 获取来源 |找到“远程:计数对象” 如果 %errorlevel% == 0 taskkill /f /im:jruby.exe 混帐拉|找到“已经是最新的”。 如果 %errorlevel% == 1 ( 快速眼动 启动黄瓜.bat REM 在更新时做其他事情 ) 快速轨道 任务清单 |找到“jruby.exe” 如果 %errorlevel%==1 ( 回声@rails s > rail.bat 回声@exit >> rail.bat 启动 cmd /c rail.bat ) 出口【问题讨论】:
【参考方案1】:我猜我会说它是坏的,因为“计数对象”行显示了一个动态进度指示器,但不要引用我的话。
...
git fetch origin
git branch -a --no-merged |find "remotes/origin"
if %errorlevel% == 0 taskkill /f /im:jruby.exe
...
您可能还想将其限制为仅当前分支:
git branch -a --no-merged |find "remotes/origin/mybranch"
【讨论】:
谢谢, git branch -a --no-merged | find "remotes/origin/HEAD -> master" 现在可以正常工作了。以上是关于无法在 Windows 批处理下的“git.exe fetch origin”中使用管道的主要内容,如果未能解决你的问题,请参考以下文章
我在我的 Github 文件夹中找不到我的 git.exe 文件
错误:无法在 Windows cmd 的 PATH 中找到 git