我有一个PowerShell脚本,它使用du.exe(最初来自Sysinternals的磁盘使用情况)来计算目录的大小.
如果我du c:\Backup在控制台中运行,它按预期工作,但在ISE或PowerGui中运行的相同代码行给出了预期的结果加上错误
+ du <<<< c:\backup
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Run Code Online (Sandbox Code Playgroud)
这是为什么?如何避免此错误?我尝试使用invoke-expression &,但是没有去.
谢谢您的帮助.
git clone它的输出写到stderr作为记录在这里.我可以使用以下命令重定向它:
git clone https://myrepo c:\repo 2>&1
Run Code Online (Sandbox Code Playgroud)
但是这会将所有输出(包括错误)重定向stderr到stdout.有没有办法将进度消息重定向到stdout但仍然写入错误消息stderr.
消息
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,则不会打印任何内容。
我正在通过PowerShell运行一些git命令,但我在捕获输出时遇到问题.
在我尝试使用之前,我所研究的许多方法都未能捕获任何输出Out-File.不幸的是,尽管这对我来说有多好,但我发现git push命令出了问题,导致我无法捕获输出...
我的代码如下:
git add . | Out-File $logFilePath -Append
git status . | Out-File $logFilePath -Append
git commit -m "Some Relevant update message" | Out-File $logFilePath -Append
git push origin $branchname | Out-File $logFilePath -Append
Run Code Online (Sandbox Code Playgroud)
当我查看日志文件时,它会显示除了输出之外的所有内容git push.因此,在对此进行故障排除时,我| Out-File从行中删除了,并注意到即使输出窗口也没有显示输出git push.只有当我完全删除Out-File所有git命令时,我才能使输出再次按预期显示.不幸的是,这让我回到原点.
有谁知道如何使用PowerShell最好地捕获git命令的输出,或者可以指出我做错了什么?