在CMD中使任何命令在.BAT中作为.EXE工作

时间:2014-03-15 12:04:23

标签: windows batch-file cmd exe

Redirecting CMD Commands To An EXE File

长话短说,基本上我有一个问题,每次我在.BAT上运行BCDedit,我转换成.EXE它从来没有工作过,我认为它不起作用的原因是因为它不是& #39; t Path但我的路径很好,即使它在Path上,也是默认设置,这要归功于foxidrive。

现在我的主要问题是,有没有一种方法可以将每个命令工作转换为.EXE文件,是否有一种技术可以让BCDedit作为.EXE文件工作?

所有的命令都只是BCDedit工作,我说如果每一个命令都能正常工作,那么如果有人像我一样有类似的命令问题他们知道如何解决它,它可以完美地作为批处理但是有一种方法我可以转换它并使BCDedit仍然作为.EXE工作吗?

请尽快回答,如果您想查看我的Path和批量,请访问顶部的链接。

非常感谢你!

2 个答案:

答案 0 :(得分:0)

编译此批处理文件并查看其是否有效:

@echo off
bcdedit /?
pause

然后尝试这个版本:

@echo off
c:\Windows\System32\bcdedit.exe /?
pause

答案 1 :(得分:0)

正如您列出的SysWow64 Redirection链接所述。如果您希望x86应用程序调用64位系统目录,则需要按如下方式调用bcdedit应用程序。

%SystemRoot%\SysNative\bcdedit

这是因为Windows向后兼容性措施,它正在查看C:\Windows\SysWOW64而不是C:\Windows\System32。另一种方法是将脚本编译为x86和64位,但是你只能在各自的系统上使用它们。

评论更新

即使路径正确,x86应用程序也会针对C:\Windows\SysWOW64\cmd.exe执行命令或批处理脚本,这将导致路径重定向问题。举例来说明我的观点。在64位版本的Windows上,打开C:\Windows\SysWOW64\cmd.exe并使用Windows资源管理器创建两个唯一文件,一个是C:\Windows\System32\unique_test64.txt,另一个是C:\Windows\SysWOW64\unique_test86.txt。现在在x86命令提示符下输入if exist C:\Windows\System32\unique_test86.txt echo true。您将看到它被重定向到SysWOW64并将打印为true。如果您输入if exist C:\Windows\System32\unique_test64.txt echo true,则无法找到任何内容。

屏幕截图示例:http://i.imgur.com/K4kkI29.png