Передача второго параметра в пакетный файл
У меня есть файл 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