foxuser 发表于 2009-3-4 14:10:31

请教高手关于在64位Windows Vista操作系统中使用FileCopy出错的问题

请教高手关于在64位Windows Vista操作系统中使用FileCopy出错的问题


我的脚本是这样的:
FileCopy(@SystemDir & "\" & "\cscript.exe",@HomeDrive & "\" & "\SampleScripts\",9)
; Copy cscript.exe from \Windows\System32\ to \SampleScripts\

脚本在32bit Windows Vista OS, 32bit Windows 7下可以正常工作。但是在64位Windows Vista OS运行时,实际复制的文件却不是我指定的源文件 \Windows\System32\cscript.exe,
实际复制到目的文件夹中的是从 \Windows\SysWoW64\ 目录过来的cscript.exe! 不同目录下的cscript.exe 版本是不同的, 我需要的是 \Windows\System32\cscript.exe。

于是进行Debug。。。
发现在系统中用DOS Command Copy是可以正常复制出来的:
Copy C:\Windows\System32\cscript.exe C:\SampleScripts\

试验了一下笨办法,直接在脚本中指定文件目录,不用函数:
FileCopy("C:\Windows\System32\cscript.exe","C:\SampleScripts\",9)
; Copy cscript.exe from \Windows\System32\ to \SampleScripts\
但是还是没有改善,居然是从\Windows\SysWoW64\目录下复制出来的,而不是我指定的C:\Windows\System32\cscript.exe!!!


经过检查cscript.exe文件的版本,可以用\Windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_6.0.6001.18000_none_a486ee99b8b762b1\cscript.exe来作指定源目录,文件同\Windows\System32\cscript.exe的版本是一样的。
但是这样的脚本也太恐怖了吧:
FileCopy("C:\Windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_6.0.6001.18000_none_a486ee99b8b762b1\cscript.exe","C:\WDTF\SampleScripts\",9)
; Copy cscript.exe from C:\Windows\winsxs\amd64_microsoft-windows-scripting_31bf3856ad364e35_6.0.6001.18000_none_a486ee99b8b762b1\ to C:\SampleScripts\


有没有高手对在Vista 64bit OS下的脚本有研究,给个意见看,我什么地方的参数要注意修改啊?
:face (13):

foxuser 发表于 2009-3-7 18:00:15

? 没有人可以解决么?

? 没有人可以解决么?

foxuser 发表于 2009-3-20 08:50:02

:face (13):
Anybody here?

小兵 发表于 2009-3-30 13:32:51

本帖最后由 小兵 于 2021-4-7 11:28 编辑

调用cmd或参考6楼方法

sanhen 发表于 2009-3-30 13:40:39

没用到64位的OS,无法测试。

sensel 发表于 2009-4-1 10:42:08

看帮助文件的 Running under Windows 64-bit Edition 节。
复制文件前加上一句:
DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)

最佳办法是,先用@AutoItX64判断是否x64系统,确定后用 Wow64DisableWow64FsRedirection 禁用文件重定向,然后执行复制操作。最后,用 Wow64EnableWow64FsRedirection 或 Wow64RevertWow64FsRedirection 恢复重定向。
页: [1]
查看完整版本: 请教高手关于在64位Windows Vista操作系统中使用FileCopy出错的问题