РЕЗЮМЕ:
Я хочу выполнить команду pskill.exe в python. Пробовал в командной строке: C:\Users\JohanSA\Documents\EclipseWorkspace\ProdataATFBASE\src\resources\pskill.exe \localhost -t 11780 --> работает хорошо!
==> Но я хочу запустить ту же команду через Python.
prodataOSLib.executeCmd("pskill.exe -t 11780", True, True)
--> Работайте красиво!
Теперь я хочу добавить имя компьютера в команду pskill.
prodataOSLib.executeCmd("pskill.exe \\localhost -t 11780", True, True)
--> ЭТО НЕ РАБОТАЕТ
Вход в функцию executeCmd говорит:
04.11.2011 13:35:15 [prodataoslib-executeCmd] — DEBUG: выполнение команды: C:\Users\JohanSA\Documents\EclipseWorkspace\ProdataATFBASE\src\resources\pskill.exe \localhost -t 11780
--> Проблема в том, что перед словом "localhost" есть только 1 обратная косая черта --> но как я могу иметь эти 2 обратных косых черты перед "localhost"?
Кто-нибудь может мне с этим помочь?
Огромное спасибо! Йохан
Это функция executeCmd:
def executeCmd (self,command, useResourceFolder=False, resultlogging=False):
''' Execute a command (default from current execution-folder) like you should type it in a DOS-prompt.
Parameters:
command = the command to be executed
useResourceFolder = False (=default) or True --> set True if you want to execute a file from the resourcefolder.
resultlogging = True when you want logging the result.
return: List with result-messages or error-messages
'''
if useResourceFolder:
command = os.path.abspath(os.path.join(self.currentdir, "..", "resources",command)) # Set path from resource directory
try:
self.logger.debug("Executing command: %s" % command)
output = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
resultfile = output.stdout
resultmessageList = []
for i in resultfile.readlines():
resultmessageList.append(i)
if resultlogging:
if len(resultmessageList) > 0:
resultstring=""
for messageline in resultmessageList:
resultstring = resultstring + messageline.replace('\n', '')
self.logger.debug("RESULT MESSAGE: %s " % resultstring)
return resultmessageList
except OSError, e:
self.logger.error("Execution FAILED. Exception: %s" %(e))