2012-03-06 2 views
0

bash в меняпакетные файлы: окна eqvivalent

echo `date``time``bla-bla-bla` 

как мы можем сделать то же самое для окон в пакетном файле? Я имею в виду обратную цитированную команду inline

+0

Этот вопрос немного расплывчатый и, скорее всего, приведет только к неправильному, трудному удержанию или уродливому кодексу. – Joey

ответ

2

В пакетной версии нет расширенной подстановки команд.

Вы могли однако сделать:

FOR /F "tokens=* delims=" %%I IN ('echo %date%') DO echo %%I 

(одинарные знаки процента, если в интерактивном режиме, двойные знаки процента в .bat или .cmd).

Если вы хотите обратные кавычки:

FOR /F "usebackq tokens=* delims=" %%I IN (`echo %date%`) DO echo %%I 

Итак:

FOR /F "usebackq tokens=* delims=" %%I IN (`bla bla bla`) DO SET blablaresult=%%I 
echo %date%%time%%blablaresult% 
+0

o.O Это, наверное, самый запутанный способ, который я когда-либо видел, просто сказать «echo% date%». Вы даже с болью убедились, что результат * точно * тот же. – Joey

+0

@Joey: использование 'echo' в конце приведено в качестве примера, но это должно показать, что вы можете манипулировать' %% I'. – Benoit

+0

ясно для даты и времени, но как насчет bla-bla-bla? – vinnitu

0

Просто попробуйте это в командной строке ....

@echo %date% %time% bla bla bla 
+0

bla-bla-bla - слишком командная – vinnitu

+0

Извините, я неправильно понял ваш неопределенный вопрос. –

1

Вы можете получить на дату и время значения с использованием предопределенных динамических переменных% date% и% time% - нет необходимости использовать команду. Вы можете комбинировать это с циклом FOR для обработки вывода команды bla bla bla.

for /f "delims=" %%A in ('"bla bla bla"') do @echo %date% %time% %%A 

Если выполняется из командной строки (не в пакетном файле), то %% A становится% A.

Смежные вопросы