I have a problem with the following code ...

>>> j = win32pipe.popen('c:\\disk\\plink jnitin@ -pw mat123 df -g','r')
>>> for i in j:
print i

As you can see the file object 'j' does not have anything in it...
But if I type 'c:\disk\plink jnitin@ -pw ibm123 df -g' in the DOS prompt, it works fine and gives me the required result...

So I gave a simple command via python like this...

>>> j = win32pipe.popen('dir','r')
>>> for i in j:
print i

Volume in drive C is DRIVE-C
Volume Serial Number is 5C8D-1DAC

Directory of C:\Disk

29/06/06 03:28 PM <DIR> .
29/06/06 03:28 PM <DIR> ..
29/06/06 02:11 PM <DIR> .idlerc
06/06/06 11:29 AM 225,280 1suntemplate.xls
29/06/06 03:28 PM 14,848 29-6-2006.xls
19 File(s) 1,474,430 bytes
3 Dir(s) 27,306,981,376 bytes free

It works fine... but not the previous command....
But the same code executes perfectly on a different machine... Both have XP...

Can anybody help me ??? Why the same code is working on one machine & not in another???

Could be different level of XP upgrade. Early version of Window XP quite buggy!

win32pipes are broken by definition, unfortunately. They won't work in all cases. I'd post a question to comp.lang.python (http://groups.google.com/group/comp.lang.python) where someone else should have experience working with/around plink specifically.

Maybe using the famous Microsoft kludge for handling spaces in filenames will do the trick. This wraps a pair of single quotes and double quote around the string. Try:

j = win32pipe.popen('"c:\\disk\\plink jnitin@ -pw mat123 df -g"','r')

Also, if plink is plink.exe use extension.

Thanks for the feedback .... Its probably due to XP, the code works fine with Win2K...

I managed to work around this problem adding this at the end of the command: "2>&1 0< nul:"

plink refuses to work without stdin redirected. It fails with the following error:

Unable to read from standard input: Invalid Identificator.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.