Эхо в несколько файлов в пакетном скрипте - PullRequest
2 голосов
/ 04 октября 2011

Как я могу отобразить строку в несколько файлов в одной команде? Пример: 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

Но я надеюсь, что это будет одна команда, а не несколько команд.

Ответы [ 4 ]

4 голосов
/ 04 октября 2011

Если вам это нужно только для однострочных (входных данных), вы можете написать свой собственный тройник с пакетом.: То же, что один вкладыш

3 голосов
/ 04 октября 2011
echo "Hello World" | tee file1.log file2.log
1 голос
/ 05 октября 2011

Вы можете сделать что-то похожее на 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
0 голосов
/ 04 октября 2011

Подойдет ли это вашему требованию:

(echo hello > file1) && copy file1 file2
...