Запустите функцию python, которая явно принимает аргументы из powershell (без передачи аргументов отдельно)

Я нашел ответ на другой вопрос переполнения стека о том, как вызвать определенную функцию def из файла python в командной строке, однако вызываемая функция не принимает никаких аргументов:

$ python -c 'from foo import hello; print hello()' 

(Я удалил оператор печати, поскольку он казался излишним для моих нужд, и я просто вызываю функцию в этом случае)

Несколько ответов говорят об использовании разбора аргументов, но это потребует изменений в нескольких файлах, которые уже существуют и нежелательны.

Последний ответ на этот вопрос представляет, как делать то, что я хочу в bash (мне нужно знать, как это сделать в powershell)

 $ ip='"hi"' ; fun_name='call_from_terminal' $ python -c "import ${fun_name} as cft; cft.test_term_fun(${ip})" hi 

Вот мой код на Python

 def operator (string): print( "Operator here, I got your message: ", string) 

и из powershell я хочу назвать это что-то вроде:

 $ python -c 'from myfile import operator; operator("my message here")' 

Редактировать:

Литеральная команда, которую я печатаю в powershell

 python -c 'from testscript import operator; operator("test")' 

Литеральное сообщение об ошибке, которое я возвращаю

 Traceback (most recent call last): File "<string>", line 1, in <module> NameError: name 'test' is not defined 

Кажется, я понимаю проблему. PowerShell пропускает двойные кавычки в исполняемый файл, даже если вы указываете одинарные кавычки (он пытается быть полезным). Использование showargs.exe (см. http://windowsitpro.com/powershell/running-executables-powershell ):

 PS C:\> showargs python -c 'from testscript import operator; operator("test")' python -c "from testscript import operator; operator("test")" 

Вы должны уйти от " символов в своей строке, чтобы перейти к интерпретатору python, либо следующим образом:

 PS C:\> showargs python -c "from testscript import operator; operator(\""test\"")" python -c "from testscript import operator; operator(\"test\")" 

или вот так:

 PS C:\> showargs python -c "from testscript import operator; operator(\`"test\`")" python -c "from testscript import operator; operator(\"test\")"