Python/Shell
< Python
Jump to navigation
Jump to search
| TODO | Code |
|---|---|
| Just run |
subprocess.run(['dpkg', '-x', deb_path, ex_path])
|
| Run with shell (Necessary on Windows) |
args = 'wmic product get name,version'.split(' ')
subprocess.run(args, shell=True)
|
| Get stdout |
args = 'wmic product get name,version'.split(' ')
completed = subprocess.run(args, shell=True, capture_output=True)
lines = completed.stdout.decode('cp950').split('\r\n')
|
Gracefully use subprocess.run() on Windows
import subprocess
import sys
def run(cmd):
summary = ''
message = ''
indent = ' '
charset = 'cp950'
try:
comp = subprocess.run(cmd, check=True, capture_output=True)
summary = "Okay:"
message = comp.stdout.decode(charset).strip()
except subprocess.CalledProcessError as ex:
summary = 'Error returned (%s):' % type(ex).__name__
message = "return code: %d\n%s" % (ex.returncode, ex.stderr.decode(charset))
message = message.strip()
except FileNotFoundError as ex:
summary = 'No such executable (%s):' % type(ex).__name__
message = ex.strerror
except Exception as ex:
summary = 'Unknown error (%s):' % type(ex).__name__
message = str(ex)
print(summary)
for line in message.split('\n'):
print(indent + line)
print()
def main():
run(['tasklist.exe', '/fi', 'imagename eq line.exe'])
run(['tasklist.exe', '/fuck', 'imagename eq line.exe'])
run(['tasklist.ex', '/fi', 'imagename eq line.exe'])
if __name__ == '__main__':
main()