Хотя решение «for» во многих случаях лучше, для чего-то простого я часто просто сохраняю и отвлекаю другие аргументы, затем использую %*
как обычно (практически такая же стратегия часто работает для $*
или $@
in {,ba,da,k,*}sh
):
пример:
:: run_and_time_me.cmd - run a command with the arguments passed, while also piping
:: the output through a second passed-in executable
@echo off
set run_me=%1
set pipe_to_me=%2
shift
shift
:: or
:: set run_me=%1
:: shift
:: set pipe_to_me=%1
:: shift
%run_me% %* | %pipe_to_me%
Как бы то ни было, я видел, что на вопрос давно дан ответ, но решил, что я уроню свои два цента, потому что это было что-то, чего я не видел, и потому что это был ответ, который мне был нужен, когда я, наконец, наткнулся на него несколько лет назад ... и пошел "о ... дух". :)