windows 下如何通过 Python 脚本调用 cmd 命令并执行

2018-01-22 11:06:32 +08:00
 mostre

1>问题来由:因为之前 vim 环境配置没有配好,所以才有了这个想法:通过脚本连续执行 cmd 命令。

2>问题描述:(附上代码)

import os
def command_line():
#os.system('cmd')
     cmd_path = [r"E:\tools\vim80-586w32\vim\vim80\vim.exe "]#列出源文件地址
     cmd_command = "cmd cd {0}".format(cmd_path)
     os.system(cmd_command)#通过 os 的命令来调用 cmd 的命令
#cmd = 'cmd cd {}'.format(source)
command_line()
#完成命令后的反馈
print('Successful the vim!')

3>在 bing 了一通无果之后,就思考,windows 下是否可以通过脚本连续执行 cmd 命令?另外有的话,可否告知其他方法?谢谢各位大 v 指点!!!

4393 次点击
所在节点    Python
11 条回复
likuku
2018-01-22 11:35:42 +08:00
subprocess 模块 有带 session 支持的 交互式 执行系统内程序的功能

os.system() 太旧了
Akkuman
2018-01-22 12:07:31 +08:00
python popen 关键词你找找,应该有的
meowoo
2018-01-22 12:23:17 +08:00
cd 到了 exeexe 文件上?
Kisesy
2018-01-22 12:46:21 +08:00
你这代码错误太多了,首先你直接 cd 到 exe 上去了,还有如果调用 cmd 命令, 需要后面加 \C 参数
比如 cmd /C dir c:\windows,还有 os.system 本身可以代表 cmd,也就是说你执行的代码前面不需要加 cmd,还有如果切换目录,可以直接用 python 本身的命令,然后再执行就行。。
hcymk2
2018-01-22 12:49:06 +08:00
先写个 bat 啊。
epicnoob
2018-01-22 12:53:02 +08:00
os.system("cd E:\\tools\\vim80-586w32\\vim\\vim80 && start vim")
geelaw
2018-01-22 13:38:20 +08:00
第一个问题是:为什么不直接调用 vim 就好了?

第二个问题是 Windows 的每个盘符具有自己的 working directory,因此只是 cd 不会改变有效的 working directory (因为当前盘符或许不是 E:),一个安全的做法是使用 pushd E:\Path\To\Dir & start .\vim.exe & popd。

最后,如果你的全部目的是执行一些命令提示符处理的程序,可以换用 batch ——提示:batch 文件必须使用 CR LF。
UnknownR
2018-01-22 15:49:00 +08:00
cmd 的 cd 需要加参数,cd /d path, 执行命令或者外部程序需要加 /c, 简单点就写个 bat,调用 cmd 还是 powershell 随便你
mostre
2018-01-22 18:33:24 +08:00
@meowoo 因为之前我有直接通过 cmd 找到相应路径打开 vim,启动 exe 文件所以就直接把命令敲上去了。
mostre
2018-01-22 18:49:50 +08:00
@Kisesy 谢谢指点,问题已解决!
mostre
2018-01-22 18:52:56 +08:00
@geelaw 谢谢指点,cd 不会改变有效的 working directory 这个涨姿势了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/424834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX