如何避免 mkdir 路径重定向到 SysWOW64

如何避免 mkdir 路径重定向到 SysWOW64

我尝试使用 .bat 文件创建一些目录 (dirs)。在 cmd.exe 中,我可以正常创建目录,但是当运行 .bat 文件中的命令时,出于某种奇怪的原因,目录在 SysWOW64 目录中创建。

Win7 x64 SP1 专业版

我如何告诉 Windows 在正确的路径上创建目录?

命令:

mkdir C:\Windows\System32\oobe\info
mkdir C:\Windows\System32\oobe\info\backgrounds

在 bat 里面,结果是:C:\Windows\SysWOW64\System32\oobe\info


使用 cmd.exe 的快捷方式并以管理员身份运行它,目录仍然在 SysWOW64 内创建。例如:

%windir%\system32\cmd.exe /c "D:\Test.bat"
 or
%windir%\System32\runas.exe /user:Administrator %windir%\system32\cmd.exe /c "D:\Test.bat"

但如果以管理员身份手动打开 cmd.exe 并运行 .bat 文件,它就可以正常工作!怎么回事??


编辑2

我找到了原因。这是因为我在 XYPlorer 中运行 .bat,而不是在 Windows Explorer (WE) 中运行。在 WE 中,.bat 可以运行。But a shortcut opened inside a 32 bit explorer is not able to run a 62 bit cmd.exe ?

答案1

如果你是绝对有信心写入文件夹C:\Windows\system32\是一个好主意(可能不是,但 YMMV),并且你不想文件系统重定向器自动重定向您的文件,您必须使用 32 位进程写入,然后使用该路径C:\Windows\sysnative\,它将写入该system32文件夹。

警告:除非您完全了解自己在做什么,否则乱动这些文件夹可能不是一个好主意。请阅读文件系统重定向器链接几次。

另请阅读这个答案,因为它确实很棒。

答案2

SysWOW64 是 Windows 系统文件夹结构和 Windows 注册表中的一项功能。但此功能会给自动化带来重大问题。以下是有关 SysWOW 模拟器的一些信息: http://msdn.microsoft.com/en-us/library/aa384249(VS.85).aspx

要解决此问题,您需要在命令提示符下启动 64 位版本或使用 MS 的文件夹重定向。

相关内容