在批处理脚本中回显多个文件

发布于 2024-12-08 01:30:39 字数 313 浏览 0 评论 0原文

如何在单个命令中将一行回显到多个文件中? 示例:echo Hello World! 到 file1.log 和 file2.log

编辑:Windows-XP 批处理脚本

挑战:给我一句简单的话 =D。如果不能用一条线完成,我不感兴趣。

我的解决方案是

ECHO Hello World!>tmp.log & COPY file1.log + tmp.log & COPY file2.log + tmp.log

但我希望有一个命令而不是多个命令。

How can I echo a line into multiple files in a single command?
Example: echo Hello World! into file1.log and file2.log

EDIT: Windows-XP Batch Script

CHALLENGE: Give me a one-liner =D. If it can't be done w/one line I'm not interested.

My solution was

ECHO Hello World!>tmp.log & COPY file1.log + tmp.log & COPY file2.log + tmp.log

But I'm hoping for one that is a single command and not multiple commands.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

〆凄凉。 2024-12-15 01:30:39

如果您只需要单行(输入),您可以使用批处理编写自己的 Tee。

@ECHO OFF
rem *** singleLineTee destination1 destination2
setlocal EnableDelayedExpansion
set /p var=
> %1 echo(!var!
> %2 echo(!var!

并将其与 echo hello | 一起使用singleLineTee file1.log file2.log

编辑: 与单行相同

echo hello | ( cmd /v:on /c "set /p var=& >> file1.log echo !var!& >> file2.log echo !var!")

cmd /v:on /c 是启用延迟扩展所必需的

If you need it only for single lines (of input) you can write your own tee with batch.

@ECHO OFF
rem *** singleLineTee destination1 destination2
setlocal EnableDelayedExpansion
set /p var=
> %1 echo(!var!
> %2 echo(!var!

And use it with echo hello | singleLineTee file1.log file2.log

EDIT: The same as an one liner

echo hello | ( cmd /v:on /c "set /p var=& >> file1.log echo !var!& >> file2.log echo !var!")

The cmd /v:on /c is necessary to enable the delayed expansion

韵柒 2024-12-15 01:30:39
echo "Hello World" | tee file1.log file2.log
echo "Hello World" | tee file1.log file2.log
夜未央樱花落 2024-12-15 01:30:39

您可以执行类似于 jeb 的操作,但将其保存在与调用代码相同的批处理文件中

@ECHO OFF
    del tem1.txt
    del tem2.txt
    call :SingleLineTeeSub "echo Hello" Tem1.txt Tem2.txt
    call :SingleLineTeeSub "echo World" Tem1.txt Tem2.txt
    call :SingleLineTeeSub "Dir tem1.txt" Tem1.txt Tem2.txt
goto :eof

:SingleLineTeeSub
    rem *** call :SingleLineTeeSub "command [params]" destination1 destination2
    setlocal EnableDelayedExpansion
    set theCmd=%~1
    >> %2 %theCmd%
    >> %3 %theCmd%
goto :eof

You could do something similar to jeb, but keep it in the same batch file as your calling code

@ECHO OFF
    del tem1.txt
    del tem2.txt
    call :SingleLineTeeSub "echo Hello" Tem1.txt Tem2.txt
    call :SingleLineTeeSub "echo World" Tem1.txt Tem2.txt
    call :SingleLineTeeSub "Dir tem1.txt" Tem1.txt Tem2.txt
goto :eof

:SingleLineTeeSub
    rem *** call :SingleLineTeeSub "command [params]" destination1 destination2
    setlocal EnableDelayedExpansion
    set theCmd=%~1
    >> %2 %theCmd%
    >> %3 %theCmd%
goto :eof
提赋 2024-12-15 01:30:39

这是否适合您的要求:

(echo hello > file1) && copy file1 file2

Will this suit your requirement:

(echo hello > file1) && copy file1 file2
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文