【问题标题】:Multi-line Command Prompt Command多行命令提示符命令
【发布时间】:2017-04-22 16:56:54
【问题描述】:

我正在尝试创建一个脚本,它会打开命令提示符并导航到一个文件夹以运行批处理作业。

import subprocess
import os
import sys

subprocess.Popen(['start', 'cmd', '/k',
                  'cd/Program Files/PremiumSoft/Navicat Premium'
                  & 'navicat.exe -batchJob testJob'])

这两个命令可以独立运行,但我不知道如何将它们放在一起并在同一个脚本中运行。

【问题讨论】:

  • 这可能更多地与bat-file 在Windows cmd 中写入和运行命令有关,而不是与Python 和subprocess 相关。
  • 看起来您可以在不涉及 cmd shell 的情况下执行此操作:navicat = os.path.join(os.environ['ProgramFiles'], 'PremiumSoft', 'Navicat Premium', 'navicat.exe');subprocess.Popen([navicat, '-batchJob', 'testJob'], cwd=os.path.dirname(navicat))。虽然我对将工作目录设置为Program Files 的子目录持怀疑态度。程序在那里没有业务写入数据。

标签: python windows subprocess command-prompt


【解决方案1】:

如果您尝试在一个进程中运行多个命令,您可能必须运行 subprocess.Popen 并将 shell 参数设置为 True

subprocess.Popen('startcmd/kcd/Program Files/PremiumSoft/Navicat Premium&navicat.exe -batchJob testJob', shell=True)

【讨论】:

  • 谢谢!这实际上是我上周开始工作但没有保存并且无法弄清楚的情况。
猜你喜欢
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
相关资源
最近更新 更多