Redirecting CMD Commands To An EXE File
长话短说,基本上我有一个问题,每次我在.BAT上运行BCDedit,我转换成.EXE它从来没有工作过,我认为它不起作用的原因是因为它不是& #39; t Path
但我的路径很好,即使它在Path
上,也是默认设置,这要归功于foxidrive。
现在我的主要问题是,有没有一种方法可以将每个命令工作转换为.EXE文件,是否有一种技术可以让BCDedit作为.EXE文件工作?
所有的命令都只是BCDedit工作,我说如果每一个命令都能正常工作,那么如果有人像我一样有类似的命令问题他们知道如何解决它,它可以完美地作为批处理但是有一种方法我可以转换它并使BCDedit仍然作为.EXE工作吗?
请尽快回答,如果您想查看我的Path
和批量,请访问顶部的链接。
非常感谢你!
答案 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
,则无法找到任何内容。