如何提示输出到控制台并同时将其附加到文件

时间:2015-05-26 09:32:30

标签: batch-file command-prompt

我想将这些命令统一在一行中。

echo "Hello"
echo "Hello" >> myFile.txt

我尝试以randoms方式使用重定向和输出,好吧,我不幸运^^

编辑:需要使用window cmd执行此操作。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

Afaik没有本地方法可以做到这一点。要么使用像wintee(https://code.google.com/p/wintee/)这样的外部工具,要么你必须做一些丑陋的事情。但是,如果您的唯一目标是将两个行统一为一个,那么这将起作用:

<ItemGroup>
    <PublishPackages > 
        <WebConfigXml>
            $(YourProjectPath)web.config
        </WebConfigXml>
        <WebJobConfig>
            $(YourWebJobPath)app.config
        </WebJobConfig>
    </PublishPackages>
</ItemGroup>
<Target Name="InjectConfigs">
    <XmlPeek 
        XmlInputPath="%(PublishPackages.WebConfigXml)" 
        Query="//parent/someelement">
        <Output TaskParameter="Result" ItemName="Peeked" />
    </XmlPeek>
    <XmlPoke 
        XmlInputPath="%(PublishPackages.WebJobConfig)"
        Query="//parent/someelement"
        Value="$(Peeked)"
        Condition =" '$(Peeked)'!=''" 
        />
</Target>
</Project>

或者:

SETLOCAL EnableDelayedExpansion
SET msg=Hello&&ECHO !msg!&&ECHO !msg!>>myFile.txt

您始终可以批量合并两行或多行代码ECHO Hello&&ECHO Hello>>myFile.txt &&&表示“执行cmd1然后执行cmd2”,cmd1&cmd2表示“执行cmd1,如果成功执行cmd 2”。

如果您决定使用第一个和平选项,则不要忘记您需要使用cmd1&&cmd2而非SETLOCAL EnableDelayedExpansion添加!...!和地址到您的变量。

答案 1 :(得分:0)

您可以创建自己的&#34;喜欢 - tee.bat &#34;以一种非常简单的方式提交文件:

@echo %*
@echo %* > CON

...然后以这种方式使用它:

call tee "Hello" >> myFile.txt

注意:您应该使用不同于&#34; tee.bat&#34;的名称命名您的批处理文件。避免纯粹主义者的批评!的 ;)