python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python调用带空格的windows cmd命令及连续运行多个命令

python调用带空格的windows cmd命令问题及连续运行多个命令方式

作者:wavehaha

这篇文章主要介绍了python调用带空格的windows cmd命令问题及连续运行多个命令方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python调用带空格的windows cmd命令及连续运行多个命令

之前在利用winrm完成远程控制windows并执行cmd,初步成功后又遇到了两个问题:

1.当路径中含有空格时,cmd命令不能正常运行

2.如果需要多个命令连续执行时会出现问题

后来找到了解决方法:

1.对于含有空格的路径,可以采用使用在路径外加双引号

如:

cd "D:\\Program Files\\The Epsilon Group\\DMMS.R\\simulator"

2.若要连续执行多条命令,只要在上一条末尾加“&”即可

如:

'D: & cd "D:\\Program Files\\The Epsilon Group\\DMMS.R\\simulator"'

这条命令就是先到D盘然后再到响应路径

完整的:

import winrm

# r = s.run_cmd('cd /d d: & dir')
# 链接服务器 需要在服务器端开启WINRM服务,具体如何开启百度
s = winrm.Session('http://ip:5985/wsman', auth=('user', 'password'))
r = s.run_cmd('D: & cd "D:\\Program Files\\The Epsilon Group\\DMMS.R\\simulator"')
print(r.std_out)

python执行cmd命令,上一个命令结束之后再执行下一个命令

python 执行cmd命令运行you-get下载多个文件时,突然发现所有的命令一下子都执行了。

前面的命令还没有执行完成,后面的命令可能早就执行结束了。

为了实现:

上一个命令结束之后再执行下一个命令,让cmd命令按顺序依次执行

try:
    subprocess.getoutput("you-get " + url)
    #os.popen("you-get "+url).read()
except:
    pass

因为下载内容会使得read() 抛出错误,所以添加异常处理。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文