Python psexec循环不工作

Python psexec循环不工作,python,python-2.7,batch-file,for-loop,psexec,Python,Python 2.7,Batch File,For Loop,Psexec,我正在编写一个脚本来启动几个客户端系统中的bat脚本。我想捕获每个出现故障的系统。我遇到的问题是,它在客户端循环,然后在最后运行IF语句。这听起来好像IF语句位于错误的位置,但逻辑对我来说似乎很好 clients=open(“C:\client.csv”,“r”) FailedClient=[] def kickoff(clients): logging.info("Going through clients.csv") for host in clients:

我正在编写一个脚本来启动几个客户端系统中的bat脚本。我想捕获每个出现故障的系统。我遇到的问题是,它在客户端循环,然后在最后运行IF语句。这听起来好像IF语句位于错误的位置,但逻辑对我来说似乎很好

clients=open(“C:\client.csv”,“r”) FailedClient=[]

def kickoff(clients):
      logging.info("Going through clients.csv")
      for host in clients:
            batkickoff = subprocess.call('C:\pstools\psexec.exe \\\\%s -d C:\test.bat' % hostname)
                if batkickoff != 1:
                  print "there was an issue"
                  logging.info(hostname + " had an issue kicking off")
              failedclients.append(hostname)     

kickoff(clients)
因此,它将在每个客户机中循环并启动bat脚本。直到最后一个循环,它才执行IF语句

感谢您的帮助


提前感谢

您确定您的脚本不仅在每个周期执行if语句,而且
batkickoff
1
,因此不会执行if语句的其余部分吗?(可能最后一个客户端名称是文件结束错误或类似错误)。我完成了if循环的其余部分,因此您可以查看它是否正在执行:

  def kickoff(clients):
      logging.info("Going through clients.csv")
      for host in clients:
         batkickoff = subprocess.call('C:\pstools\psexec.exe \\\\%s -d C:\test.bat' % host)
         if batkickoff != 1:
             print "there was an issue"
             logging.info(host + " had an issue kicking off")
             failedclients.append(host)
         elif batkickoff == 1:
             logging.debug(host + "successfully executed")
         else:
             logging.debug("unknown error")
检查输入到函数中的客户端变量的内容,以确保读取csv时没有错误,这可能也很有用

请让我知道这是否有帮助


编辑:我假设这段代码的内容比您在这里发布的内容更多,缩进错误是由于复制粘贴问题造成的
hostname
更改为
host
@Burhan Khalid

您发布的脚本将永远无法运行。请发布您正在使用的实际脚本。抱歉,但为什么不起作用?您使用的是从未在任何地方定义过的
hostname
,缩进也已关闭。