我想從ruby腳本運行程序nbtstat.exe(位於c:\ windows \ system32)。問題是,似乎Windows 7(64位)是從ruby腳本隱藏程序(它在Vista中正常工作)。Windows 7是否隱藏Ruby的文件?
例如,
nbtstat命令: 「使用nbtstat」
導演命令:dir 「C:\ WINDOWS \ SYSTEM32 \ N * .EXE」
如果我在剛剛命令運行nbtstat命令行,nbtstat將運行良好。如果我然後運行dir命令,則nbtstat.exe將顯示在該目錄中的文件列表中。然而,如果我從ruby腳本(使用反引號,系統,%x或Kernel.open)運行nbtstat命令,它將不會成功。如果我然後運行dir命令(也來自ruby腳本),它將顯示目錄中的文件列表minus nbtstat.exe和其他幾個文件。
UAC已關閉,正在從管理員處運行。我在紅寶石1.8.6和1.9.2中都試過了。
我創建了一個運行nbtstat命令的.bat文件,它工作正常,但如果我從ruby腳本調用.bat文件,它將失敗。
任何想法?
謝謝。
64位?有兩種可能的虛擬化方式(每種都會導致您顯示的文件夾不是您認爲顯示的文件夾) - 一種是由UAC引起的,您說的是關閉的,另一種是由64位的適應性引起的。那麼,你是32位還是64位的Windows 7? – 2010-10-20 23:22:34
是的,它是64位。 UAC被設置爲「從不通知」,並且計算機已被重新啓動。 – juan2raid 2010-10-20 23:28:50
你的Ruby解釋器是32位的嗎?當您引用c:\ windows \ system32時,32位進程實際上會看到c:\ windows \ syswow64。運行c:\ windows \ syswow64 \ cmd.exe,您將無法看到該文件。 – vanza 2010-10-21 21:04:55