Я пытаюсь написать скрипт Powershell, чтобы сделать некоторые вещи с выводом, который я получаю из команды Mercurial log. Вот что у меня так далеко:
param([string] $Path, [string] $From, [string] $To)
$file_list = hg log -R ${Path} -r ${From}:${To} --style fileList
$file_list
Когда я запускаю этот скрипт .ps1 из приглашения (текущий рабочий каталог - мой рабочий стол), я получаю следующую ошибку:
hg.exe : abort: :tip not under root
Я добавил кавычки вокруг команды, чтобы я мог точно видеть, что запускается так:
param([string] $Path, [string] $From, [string] $To)
$file_list = "hg log -R ${Path} -r ${From}:${To} --style fileList"
$file_list
Когда я называю это так:
.\MyScript.ps1 -Path .\Projects\MyProject -From 80 -To tip
Вывод - именно то, что я хотел:
hg log -R .\Projects\MyProject -r 80:tip --style fileList
Если я скопирую и вставлю этот вывод прямо в мою командную строку, команда log будет работать правильно.
Я не могу найти хорошую документацию по этому сообщению об ошибке. Я знаю, что этот каталог является репо. Разве это на самом деле не использует каталог, который я указал для корня репо? Делает ли Powershell что-то на пути, по которому я иду?