Hitesh Joshi wrote: >Hi, > >I wanted to pass a popup mesage using windows messagin service to five >PCs. >If I just use following then PC1 gets the popup service message: > >import os >os.system('net send PC1 "Message"') > > >But if I try to create a for loop like this it doesn't work.... how can >I pass computerName var as an argument? >What am I doing wrong here? Thank you in advance.... > >import os > >Computerlist = ['PC1', 'PC2', 'PC3', 'PC4', 'PC5'] >for ComputerName in Computerlist: > print ComputerName > os.system('net send ComputerName "Message"') > > > Well... Just look at the name of the computer you are sending the message to. Its looking for a computer named 'ComputerName', not 'PC1' ...
You want to create a command that has the computer's name in it, like this: 'net send PC1', not like this 'net send ComputerName'. You have several ways to from such a string. You have the same problem with the message. Your message will be the string 'Message' not the contents of a variable names Message. Try: os.system('net send %s "%s"' % (ComputerName, Message)) (where the % operator replaces %s's on the left with values taken from the variables on the right) or os.system('net send ' + ComputerName + ' "' + Message + '"') where the +'s build the command string up from pieces. You might try invoking Python interactively and try typing some of these expressions by hand to see that happens: python >>> ComputerName = 'Fred' >>> Message = 'HI' >>> print 'net send ComputerName "Message"' net send ComputerName "Message" >>> print 'net send %s "%s"' % (ComputerName, Message) net send Fred "HI" >>> Gary Herron -- http://mail.python.org/mailman/listinfo/python-list