相关疑难解决方法(0)

标准和错误输出的重定向附加到同一日志文件

我需要将标准输出和错误日志从几个进程收集到一个日志文件中.

因此,每个输出都必须附加到此日志文件.

我想用这样的行调用所有作业:

$p=start-process myjob.bat -redirectstandardoutput $logfile -redirecterroroutput $logfile -wait
Run Code Online (Sandbox Code Playgroud)

我需要在哪里附加信息?

powershell powershell-2.0

51
推荐指数
3
解决办法
12万
查看次数

Git clone:将stderr重定向到stdout但是将错误写入stderr

git clone它的输出写到stderr作为记录在这里.我可以使用以下命令重定向它:

git clone https://myrepo c:\repo 2>&1
Run Code Online (Sandbox Code Playgroud)

但是这会将所有输出(包括错误)重定向stderrstdout.有没有办法将进度消息重定向到stdout但仍然写入错误消息stderr.

git powershell git-clone

19
推荐指数
4
解决办法
6339
查看次数

不要在从外部命令写入 stderr 时抛出 PowerShell 异常

当外部命令(例如 git)写入 stderr 时,PowerShell 会生成 NativeCommandError 异常。我想正常地看到输出和标准输出,类似于它在标准 UNIX/Linux 系统上的外观。此脚本需要运行许多本机命令,如果可能,我更喜欢不会给每个命令增加太多混乱和维护的解决方案。

在 Linux 上,可以这样检出分支:

$ git checkout devel
Branch 'devel' set up to track remote branch 'devel' from 'origin'.
Switched to a new branch 'devel'
Run Code Online (Sandbox Code Playgroud)

其中微妙的部分是,无论出于何种原因,最后一行都已写入 stderr。但是,git 的退出状态为零表示它成功了。在 PowerShell 下,我得到了这个:

PS> git checkout devel
Branch 'devel' set up to track remote branch 'devel' from 'origin'.
git : Switched to a new branch 'devel'
At line:1 char:1
+ git checkout devel
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Switched to a new branch 'devel':String) …
Run Code Online (Sandbox Code Playgroud)

git error-handling powershell

9
推荐指数
2
解决办法
1291
查看次数

为什么“git submodule add ...”写入stderr而不是stdout?

消息

Cloning into 'sub-mod'...
done.
Run Code Online (Sandbox Code Playgroud)

git submodule add...将命令写入stderr后。我希望该消息被写入标准输出,因为我不认为它表明命令出了问题。

我可以使用以下命令序列重现此内容:

rm   -rf /tmp/repo /tmp/module
mkdir    /tmp/repo /tmp/module

cd /tmp/module

git init  > /dev/null
echo "foo" > foo;
git add foo > /dev/null
git commit . -m "+ foo" > /dev/null


cd /tmp/repo

git init > /dev/null
git submodule add /tmp/module/ sub-mod 1> /dev/null
Run Code Online (Sandbox Code Playgroud)

如果我将最后一个命令中的重定向更改为... 2> /dev/null,则不会打印任何内容。

git shell stdout stderr

6
推荐指数
1
解决办法
2682
查看次数

从Powershell运行"Git-Clone"即使看起来有效也会出错

如何解释来自调用"Git Clone"(实际使用GitLab)的PowerShell脚本的错误.我可以克隆一个空目录并使其工作而不会出错吗?

$path1 = "d:\GitPath" 
$path2 = "${path1}\mycompany-mygroup-nealtestautomation01-map"
$gitLabHttp = "http://git.mycompany.com/MyGroup/nealtestscriptaddedproject.git"
$gitLabHttp = "http://git.mycompany.com/MyGroup/mycompany-gwcustomers-nealtestautomation01-map.git" 
rd $path2 
cd $path1
git clone $gitLabHttp --local --verbose
Run Code Online (Sandbox Code Playgroud)

输出:

git : Cloning into 'mycompany-mygroup-nealtestautomation01210-map'...
At D:\Scripts\GitCloneTest.ps1:7 char:1
+ git clone $gitLabHttp --local --verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Cloning into '...mation01-map'...:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

warning: --local is ignored
warning: You appear to have cloned an empty repository.
Run Code Online (Sandbox Code Playgroud)

我想要使​​用此代码的任何更大的脚本,我包括:

$ErrorActionPreference = "Stop"  #Special Poweshell Syntax to Stop on First Error 
Run Code Online (Sandbox Code Playgroud)

这样它就会在第一个错误时停止.

即使我在一个非空的项目上运行它,我看到红色和类似于上面的错误(在此次运行中使用--local和--verbose): …

git powershell-4.0

6
推荐指数
1
解决办法
1141
查看次数

Git push不会退出

我第一次在我的电脑上乱搞git.我有一个存储库D:\MyProjectA\,还有一个裸存储库D:\MyProjectB\.然后我origin通过运行设置裸克隆remote add origin D:\MyProjectB.

现在我对MyProjectA进行了一些更改,并希望将它们推回原点.当我git push origin master在Powershell中运行时,我看到以下输出,但脚本没有退出.我必须按Ctrl-C才能关闭.这是怎么回事?

PS D:\MyProjectA> git push origin master
Counting objects: 3, done.
Delta compression using up to 16 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 290 bytes | 290.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
Run Code Online (Sandbox Code Playgroud)

git

5
推荐指数
1
解决办法
172
查看次数

git命令的输出未完全重定向到文件

git fetch命令的输出test1从以下cmd 重定向到“ ”文件:

manish@rigved:~$ git fetch --all --prune > test1
From https://github.com/Beawel/wwwnew
 x [deleted]         (none)     -> origin/test
Run Code Online (Sandbox Code Playgroud)

问题:但是x [deleted] ...输出中显示的“ ”行未重定向到test1,为什么?请提出建议。

为什么git命令会在stderr上打印明显不是错误消息的内容?

manish@rigved:~$ cat test1
Fetching origin
Run Code Online (Sandbox Code Playgroud)

git redirect

2
推荐指数
1
解决办法
711
查看次数