Как передать динамическое число аргументов в пакетный файл и как отправить аргумент в виде строки, которая может состоять из нескольких слов? - PullRequest
0 голосов
/ 15 октября 2018

У меня два вопроса:

1) Как передать динамическое число аргументов в пакетный файл?Предположим, что у меня есть командный файл c: \ test.bat.Сам пакетный файл состоит из c:\test.exe %1 %2

Теперь, если я запущу «c: \ test.bat aa bb», результат будет такой: «c: \ test.exe aa bb»

Мне нужно иметь возможность добавить неизвестное / динамическое количество аргументов, например:

c:\test.bat aa bb cc dd 33 gg

c:\test.bat kk

2) Как добавить в приведенный выше пример параметр для передачиодин аргумент, который может состоять из нескольких разных строк, например:

c:\test.bat kk "aa bb cc" dd 

, где "aa bb cc" - один аргумент

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Ответ на оба вопроса:

C:\test.exe %*

%* передает все аргументы из пакета в exe, а также оставляет в кавычках аргументы из нескольких слов без изменений.

0 голосов
/ 15 октября 2018

Это может помочь:

@echo off
rem if the first parameter isn't blank, echo it
if not %1x==x echo %1
if not %2x==x echo %2
if not %3x==x echo %3

С другой стороны, если вы просто передадите все параметры в EXE, он будет видеть только те, которые вы набрали в командной строке, и не будетрасстроен тем, кого ты не набрал, не так ли?

А что касается твоего второго вопроса, ты уже ответил на него.Все параметры, ограниченные кавычками, будут передаваться как один параметр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...