2013-07-11 3 views
3

win32com.client를 사용하여 폴더에 간단한 바로 가기를 만들려고합니다. 바로 가기 그러나 나는 다음과 같은 오류가 계속 제외하고 인수를하고 싶습니다.Python - 인수를 사용하여 바로 가기 만들기

Traceback (most recent call last): 
    File "D:/Projects/Ms/ms.py", line 153, in <module> 
    scut.TargetPath = '"C:/python27/python.exe" "D:/Projects/Ms/msd.py" -b ' + str(loop7) 

File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 570, in __setattr__ 
    raise AttributeError("Property '%s.%s' can not be set." % (self._username_, attr)) 
AttributeError: Property '<unknown>.TargetPath' can not be set. 

내 코드는 다음과 같습니다. 나는 여러 다른 변종을 시도했지만 올바르게 이해하지 못하고있다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

ws = win32com.client.Dispatch("wscript.shell") 
scut = ws.CreateShortcut("D:/Projects/Ms/TestDir/testlink.lnk") 
scut.TargetPath = '"C:/python27/python.exe" "D:/Projects/Ms/msd.py" -b 0' 
scut.Save() 

답변

4

코드는 오류없이 저에게 적합합니다. (Windows XP 32 비트, Python 2.7.5, pywin32-216).

( TargetPath 만 실행 경로를 포함해야하기 때문에 나는 약간의 코드를 수정했습니다.) 나는 다음과 같은 시도 할 때 당신과 비슷한 AttributeError를 가지고

import win32com.client 
ws = win32com.client.Dispatch("wscript.shell") 
scut = ws.CreateShortcut('run_idle.lnk') 
scut.TargetPath = '"c:/python27/python.exe"' 
scut.Arguments = '-m idlelib.idle' 
scut.Save() 

(Arguments 속성 목록을 지정합니다.)

>>> scut.Arguments = [] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "c:\python27\lib\site-packages\win32com\client\dynamic.py", line 570, in __setattr__ 
    raise AttributeError("Property '%s.%s' can not be set." % (self._username_, attr)) 
AttributeError: Property '<unknown>.Arguments' can not be set. 
1

"..TargetPath는 [an] 실행 경로 만 포함해야합니다." 두 가지 방법으로 올바르지 않습니다.

  1. 대상에 실행 파일의 인수가 포함될 수도 있습니다.

는 예를 들어, 내가 파일을 [D가 : \ DATA \ CCMD \는 Expl.CMD] 코드의 그 핵심 라인은 START Explorer.exe에서 "% 목표 %"

의 사용의 예입니다 D : \ DATA \ CCMD \ Expl.CMD "D : \ DATA \ SYSTEM - NEW INSTALL PROGS"

이 전체 줄은 참조하고있는 "실행 파일"입니다.

  1. 대상이 "실행 가능"일 필요는 없습니다. 그것은 OS는 같은 그 기본 동작, 인수로서 파일과 실행 파일을 실행하는 파일 형식으로,에 따라 행동 할 수있는 모든 파일 수 있습니다 : "내 File.txt를"

은 " 이 파일 형식의 기본 동작은 텍스트 편집기로 파일을 여는 것입니다. 실제 실행 파일 실행은 명시 적이지 않습니다.