Как я могу получить скрипт Python для поиска правильного Tortoise.exe, если у меня установлено несколько клиентов Tortoise (Git, SVN)? - PullRequest
0 голосов
/ 28 марта 2012

У каждого клиента-черепахи есть собственный исполняемый файл с именем Tortoise.exe, и я ищу способ дифференцировать их перед использованием Python subprocess.call или класса C # Process

Я использовал подпроцесс.call () для запуска определенных действий через TortoiseSVN.

Python:

call('TortoiseProc.exe /command:ignore /path:\"%s\" /closeonend:0' % url)

C #:

tortoiseSVN = new Process( );
tortoiseSVN.StartInfo.FileName = "tortoiseProc.exe";

Это прекрасно работает, если у меня не установлен второй (или третий) клиент Tortoise, такой как TortoiseGit.Мой текущий обходной путь - удалить папки, не относящиеся к TortoiseSVN, из моей переменной Windows PATH, но я хочу найти что-то более элегантное.

1 Ответ

0 голосов
/ 29 марта 2012

В качестве примера для комментария Алексис:

def gen_command_string(path, url):
    cmd = path + 'TortoiseProc.exe /command:ignore /path:\"%s\" /closeonend:0' % url
    return cmd

SVN_PATH = 'C:/Program Files/TortoiseSVN/bin'
HG_PATH = 'C:/Program Files/TortoiseHg/bin/'

cmd = gen_command_string(SVN_PATH, 'http://google.com')
call(cmd)
...