le dahut wrote: > Using explorer I've found "nbtstat.exe" in C:\Windows\System32. > > In a MSDOS prompt : > dir C:\Windows\System32\nbtstat.exe > finds the file. > > In a python prompt : > os.system('dir C:\\Windows\\System32\\nbtstat.exe') > returns "File not found". > > It seems that : > * in MSDOS prompt C:\Ẁindows\System32 and C:\Ẁindows\SysWOW64 are two > separate dirs with different content > * in a python prompt C:\Ẁindows\System32 = C:\Ẁindows\SysWOW64 (same > content)
And you are exactly right. > Any idea ? This is a very confusing point, so even though it's not directly Python-related, I think it's still valuable to discuss it again. As you discovered, Windows is helping you. For reasons that have never been adequately explained to me (and believe me, I have asked people who ought to know), on a 64-bit system, all of the 64-bit commands and DLLs live in \Windows\System32. All of the 32-bit commands and DLLs live in \Windows\SysWOW64. A 64-bit process gets to see both of those directories as they really are. But for a 32-bit process, the operating system "helpfully" rewrites your paths. When you refer to \Windows\System32, the system helpfully rewrites that reference to \Windows\SysWOW64. Microsoft calls it file system redirection". I call it "file system stupidity". Most of the time, that's OK. Most of the important commands are present in both directories. A few (like nbtstat) are not, and that's a problem. There are two solutions. One is to use 64-bit Python, which you have said is a problem for you. The other is to use an API with the tongue-twisting name Wow64DisableWow64FsRedirection. Here is my script: import ctypes k32 = ctypes.windll.kernel32 wow64 = ctypes.c_long( 0 ) k32.Wow64DisableWow64FsRedirection( ctypes.byref(wow64) ) # ... do stuff with real files ... k32.Wow64RevertWow64FsRedirection( wow64 ) -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32