【问题标题】:Comparing cmd Output in Python比较 Python 中的 cmd 输出
【发布时间】:2025-12-30 03:20:14
【问题描述】:

我需要比较 python 中命令的输出来执行 if/else but。不幸的是,我的 Python 技能还不是很好。

这个想法是用 cmd 检查 Windows 用户是否存在并创建或删除然后创建他。

我可以使用类似的东西吗:

subprocess.check_output.Popen(command 'net user + USER +',stdout=PIPE)

if PIPE= ... 
command = ('net user '...)

else command = (...) 

【问题讨论】:

  • 您正在运行命令“net user + USER +”。这不是一个有效的命令。你可能想要“'net user ' + user”之类的东西。

标签: python windows batch-file


【解决方案1】:

要使 if/else 语句起作用,您需要用冒号 (:) 结束它并为您需要执行的语句提供缩进。

if x == True:
    print ('x is True')
else:
    print ('x is False')

【讨论】:

  • 所以你认为我的第一部分会奏效吗? subprocess.check_output.Popen(command 'net user + USER +',stdout=PIPE)
  • subprocess.check_output('"net user" + USER',stdout=PIPE)
【解决方案2】:

我试过了:

import subprocess

p = subprocess.check_output("net user",stderr=subprocess.STDOUT,shell=True)
print(p)

它在命令行上运行命令 net user 并打印输出。但我不确定这是否是你想要的。你能澄清一下吗?或者,如果这有帮助,请将此作为您的答案,以便对 SO 社区中的其他人有所帮助。谢谢:)

编辑: 这不是检查用户是否存在的最优雅的方法,但你明白了。 使用 if-else 语句:

import subprocess

user = 'iamuser'
success = 'The command completed successfully'
p = subprocess.check_output('net user ' + user,stderr=subprocess.STDOUT,shell=True)
if(success in str(p)):
    print('iamuser exists!')
else:
    print('nope, iamuser does not exist!')

现在你说你想添加或删除用户,所以我仍在试图弄清楚如何做到这一点,因为据我所知,这需要以管理员身份运行命令行。但这是一个开始。希望对你有帮助:)

【讨论】:

  • 嗨,我需要处理命令的输出。因此,如果用户不存在,则 cmd 会说“用户不存在”之类的内容,我想运行类似 if OUTPUT="User exsist" command (net user XXX /delete) else (net user XXX /add) 的内容
  • 是的,你需要像我一样将输出存储在一个字符串中,然后根据你的条件检查字符串中的子字符串。而不是命令,你需要使用 subprocess 模块就像我一样。另外,为什么我被否决了?
  • 能否请您粘贴一个带有 if 和 else 语句的示例?