3

Я имею в виду использовать это так:

echo some data | this-tool-m-searching-for -vn myvariable

или же

time | this-tool-m-searching-for -vn current_time

так далее..

а потом

echo %myvariable%

будет производить some data т.д ...

Это не только эхо или время, я имею в виду любую программу, которая выдает вывод на стандартный вывод.

2 ответа2

3

Это обычная конструкция, я считаю:

for /F %i in ('time /t') do set current_time=%i

(как обычно, знаки процента должны быть удвоены в командном сценарии.)

Еще одна конструкция, хоть и неловкая

time /t > tempfile.txt
set /p current_time= < tempfile.txt

Кажется, нет никакого способа избежать временного файла; если вы используете канал, команда set выполняется в подпроцессе. (В некоторых ситуациях вы можете передать вывод во вторую копию вашего пакетного сценария, но такие вещи могут быть ужасно быстрыми.)

дополнительный

Если говорить о моем последнем замечании, то в ответ на вопрос в комментариях приведен пример пакетного файла, который направляет вывод в новый экземпляр:

if "%1" NEQ "" @goto %1
:step1
time /t | %0 step2
goto :eof
:step2
set /p current_time=
echo %current_time%
rem processing here...

Я не думаю, что это решение хорошо масштабируется для более сложных пакетных скриптов.

2

Попробуйте export.exe, он, кажется, делает именно то, что вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .