Как получить эффект от запуска сценария powershell из пакетной команды.

Например, у меня есть несколько пакетных команд для PATH, специфичных для моего пользователя, я использую их, чтобы упростить использование командной строки и git для моей работы.

Однако я еще не приобрел привычку изучать PowerShell, поэтому не люблю использовать PowerShell, если смогу помочь.

Однако по мере переноса материала все больше и больше скриптов становятся скриптами PowerShell.

Как я могу создать пакетный файл «ярлык», который перенаправляет все передаваемые ему аргументы в сценарий powershell с тем же именем?

Например, у меня есть скрипт Powershell под названием stree.ps1

Start-Process "C:\Users\ryan.leach\AppData\Local\SourceTree\SourceTree.exe" -ArgumentList "-f $((Resolve-Path $args[0]).toString())"

это запустит SourceTree с аргументом, соответствующим переданному пути.

Как я могу создать stree.bat, который вызывает stree.ps1, перенаправляя все аргументы в stree.ps1, без необходимости обновлять stree.bat, если в stree.ps1 были внесены небольшие изменения?

1 ответ1

1

Если вы запустите stree.ps1 в PowerShell следующим образом:

stree some_argument

тогда ваш stree.bat должен выглядеть так:

PowerShell -Command "stree some_argument"

Смотрите документацию для более подробной информации.

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

PowerShell -Command "stree %*"

а затем запустить:

stree.bat some_argument some_other_argument

Редактировать 2: Хорошо, я проверил это, и он работает как ожидалось.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .