2014-11-10 6 views
0

Я пытаюсь записать cd в папку с помощью subprocess.call (я хочу запустить команду в этой папке), эхо - это открыть окно оболочки питания.Почему я не могу «cd» в папку в subprocess.call?

subprocess.call([ 
      "C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", 
      "cd C:\dev\git-sites\Babyshop", 
      "echo 'test'" 
     ]) 

Когда я пытаюсь запустить это, я вижу красное сообщение об ошибке, перед тем как закрыть окно.

Как я могу сохранить powershell открытым или получить выход из него? Почему это не работает?

+0

использовать Popen и сообщить –

ответ

2

Список, который вы указываете call(), поскольку параметр не является списком команд для выполнения. Это команда и ее аргументы. Вы можете выполнить только один командный вызов за call().

+0

в порядке, так как я должен сделать это, чтобы заставить его работать? – Himmators

+0

Kristoffer: Возможно, вы могли бы попробовать: 'C: \ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe -NoLogo -command {start-transcript -path C: \ temp \ log.txt; cd C: \ dev \ git-sites \ Babyshop; stop-transcript} ' вы можете добавить дополнительные команды Powershell внутри блока сценария, просто разделив их с; Вывод транскрипта позволит вам видеть вывод без необходимости открывать Powershell. –

Смежные вопросы