gpt4 book ai didi

msbuild - 如何从控制台输出中隐藏我在MSBuild Exec任务中使用的命令?

转载 作者:行者123 更新时间:2023-12-04 16:39:32 25 4
gpt4 key购买 nike

我的MSBuild文件中有一个任务,如下所示:

<Exec command="net use $(DeploymentServerName) /user:username passwd" ContinueOnError="false" />

但是在控制台输出中,它将转储命令:
...
net use $(DeploymentServerName) /user:username passwd
...

但是,如果可能的话,我想隐藏凭据。我不在乎命令输出到哪里,我只是在乎命令本身没有回显到控制台。有任何想法吗?

最佳答案

有两种可能的方法,这里是一种

<Target Name="DoHideCommand">
<Exec Command="MSBuild $(MsBuildThisFile) /t:SpecialCommand /nologo /noconsolelogger"/>
</Target>

<PropertyGroup>
<MyCommand>dir c:</MyCommand>
</PropertyGroup>

<Target Name="SpecialCommand">
<Exec Command="dir"/>
</Target>

这将调用一个单独的msbuild进程来调用实际的目标,并隐藏导致
...
DoHideCommand:
MSBuild test.targets /t:SpecialCommand /nologo /noconsolelogger
...

这是另一个
<Target Name="SpecialCommandViaFile">
<PropertyGroup>
<TmpFile>tmp.bat</TmpFile>
</PropertyGroup>
<WriteLinesToFile File="$(TmpFile)" Lines="$(MyCommand)"/>
<Exec Command="$(TmpFile) > NUL 2>&amp;1" WorkingDirectory="$(MsBuildThisFileDirectory)"/>
<Delete Files="$(TmpFile)"/>
</Target>

这将创建一个批处理文件以运行实际命令,然后将所有输出重定向到NUL,因此仅显示以下内容:
...
SpecialCommandViaFile:
tmp.bat > NUL 2>&1
Deleting file "tmp.bat".
...

请注意,尽管执行msbuild文件的人始终可以简单地打开文件以查看凭据,即使它们在运行时从输出中被隐藏。

关于msbuild - 如何从控制台输出中隐藏我在MSBuild Exec任务中使用的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189811/

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