#scripting #command-line #dos #command-prompt
#написание сценариев #командная строка #dos
Вопрос:
Я хотел бы запустить команду в DOS, которая использует вывод другой команды в качестве своей части, что-то, что одна обратная кавычка (`) позволяет делать в UNIX или Linux.
Например, если myCommand
возвращает список файлов, я хотел бы выполнить в DOS какой-нибудь аналог команды UNIX
grep `myCommand`
Как бы это сделать в DOS?
Заранее благодарю вас за вашу помощь.
Комментарии:
1. Если под «DOS» подразумевается «cmd.exe в Windows», затем рассмотрите PowerShell как современную альтернативу этому пережитку. Аналогично, рассмотрим один из нескольких портов «Unix util». Черт возьми, есть некоторые действительно старые программы и для MS-DOS, такие как Unix-подобные программы MS-DOS
Ответ №1:
Вы можете передавать две команды:
command1 | command2
Но существует не так уж много команд, ввод / вывод которых хорошо сочетается друг с другом. Вероятно, вам лучше всего использовать цикл for. Основной синтаксис таков:
for /f %A in ('command1') do command2 %A
Ответ №2:
Если только вы не попробуете for %%i in … синтаксис, я не вижу надежды в DOS. DOS — это не Unix.
Другим решением является создание нового пакета с использованием цикла for (с @ и echo) и запуск нового пакета в конце.
Возможно, вам потребуется выполнить это рекурсивно.