Передача второго параметра в пакетный файл

У меня есть файл hello.bat со следующим кодом:

echo first: %1 and second: %2 > me.txt

Я пытаюсь вызвать это с помощью powershell. Когда я передаю первый параметр, он работает хорошо:

 start-process hello test

Однако, когда я пытаюсь передать второй параметр, как это:

 start-process hello test test2

Я получаю эту ошибку:

Start-Process: невозможно найти позиционный параметр, который принимает аргумент 'test2'

2 ответа

Решение

Вы можете просто передать аргументы, используя запятую, например:

start-process hello test,test2

или же

start-process hello "test test2"

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

Я не знаю, почему вы запускаете командную строку из командной строки, но я думаю, что это должно работать:

Start-Process -FilePath $env:ComSpec -ArgumentList "/c hello.bat test test2"

Не думаете ли вы, что пришло время заменить cmd на Powershell?

Вы также можете изменить свой файл bat:

echo %1 > me.txt
echo %2 >> me.txt
Другие вопросы по тегам