How to: Pass Arguments to Python Script via Powershell
Question: I am attempting to pass 2 arguments to a python script via Powershell.

CODE:

    
    
    $env:PATHEXT += ";.py"
    
    [Environment]::SetEnvironmentVariable("Path", "$env:Path;c:\Program Files\lcpython15\", "User") 
    
    $args1 = "Test1"
    $args2 = "Test2"
    $Python_SetAttrib = "c:\ProgramData\set_cust_attr.py "
    
    python $Python_SetAttrib $args1 $args2
    
    USAGE FROM CMD.exe: 
    c:\ProgramData\set_cust_attr.py <custom attribute name> <custom attribute value>
    

ERROR:

    
    
    PS C:\ProgramData> python $Python_SetAttrib + $args1 +  $args2
    usage: c:\ProgramData\set_cust_attr.sh <custom attribute name> <custom attribute value>
    OR
    usage: c:\ProgramData\Opsware\set_cust_attr.sh --valuefile <path to file with value     in     it> <custom attribute name>
    
    python.exe : Got more than one custom attribute name.
    At line:1 char:7
    + python <<<<  $Python_SetAttrib + $args1 +  $args2
        + CategoryInfo          : NotSpecified: (Got more than one custom attribute     name.:String) [], RemoteException
        + FullyQualifiedErrorId : NativeCommandError
    
    Unhandled exception in thread started by 
    Traceback (most recent call last):
      File ".\client\__init__.py", line 88, in pumpthread
      File "C:\Program Files\lcpython15\lib\site-packages\pythoncom.py", line 3, in ?
        pywintypes.__import_pywin32_system_module__("pythoncom", globals())
      File "C:\Program Files\lcpython15\Lib\site-packages\win32\lib\pywintypes.py", line     68, in __import_pywin32_system_module__
        import _win32sysloader
    ImportError: No module named _win32sysloader
    


Answer: Got it! Darn single quotes.....

    
    
    $env:Path += ";c:\Program Files\lcpython15";
    $env:PATHEXT += ";.py"; 
    $arg1 = "Test3" 
    $arg2 = "Testing" 
    $arg3 = 'c:\ProgramData\set_cust_attr.py' 
    python $arg3 $arg1 $arg2    
    

