none
win7 x64命令行下遇到一个无法找到文件的问题 RRS feed

  • 问题

  • 微软论坛太恶心了,贴下图片还得跳到另一个窗口

    看看下面这幅图片,我有一个批处理,是放在winrar自解压里执行的,自解压程序运行后解压到一个目录,然后自动执行里面的批处理文件,批处理执行一条命令,但是如图,明明有这个文件的,而且还在system32目录里,照说在环境变量里的命令,在哪里都能执行,但是却提示找不到文件,这是不是太可笑了

    还有一个问题,就是我也是在这个自解压批处理文件里添加的命令,是sc create创建一个服务的,放在自解压里创建的服务无法启动,也是提示错误2,找不到文件。但是文件明明在那里,路径完全正确,打开注册表里查看服务的可执行路径也是完全正确的,搞不懂错在哪里。于是我就手动解压出来,然后执行里面的批处理,却可以正常创建服务并启动服务,这又是为什么?

    两个问题同样都是遇到无法找到文件的问题,难道自解压过程中环境变量出了什么问题?

     

     

    2012年1月15日 7:13

答案

  • 為了更清楚的驗證, 你可以將你寫的批處理程序中添加 pause 命令, 然後通過 Windows 任務管理器觀察是否有一個 cmd.exe 進程名後帶有 *32 字樣.
    Folding@Home
    2012年1月15日 15:12
  • 同意 repl 的看法,如果是在 64 位 Windows 中运行 32 位程序,请检查重定向的问题。
     
    还有就是环境变量,试试在批处理中不要使用 %WinDir% 变量,而是修改为 D:\Windows,看看有没有效果。
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "吴小勇"
     
    微软论坛太恶心了,贴下图片还得跳到另一个窗口
    看看下面这幅图片,我有一个批处理,是放在winrar自解压里执行的,自解压程序运行后解压到一个目录
     
     
    2012年1月15日 21:43

全部回复

  • 出現這個問題的原因, 99% 的可能是因為 WinRAR 是 32 位應用程序, 當一個運行在 64 位 Windows 系統的 32 位應用程序訪問 system32 默認是會被重定向到 syswow64 文件夾, 而 syswow64 文件夾是沒有 pnputil.exe 應用程序的. 至於你解壓後, 運行批處理這可執行成功, 則是因為批處理默認是通過 64 位的 cmd 執行, 可以直接訪問 system32 文件夾.

    如果要自解壓的話, 可以嘗試通過系統自帶的 iexpress.exe 完成.


    Folding@Home
    • 已编辑 repl 2012年1月15日 8:50
    2012年1月15日 7:46
  • 可是我在自解压里的批处理里添加的命令是带环境变量的,%windir%\system32\pnputil.exe,我是这样写,为什么也提示找不到文件呢?
    2012年1月15日 13:45
  • 你可以將下面的代碼複製並保存一個批處理程序, 然後執行, 就可以清楚看到在 64 位 Windows 系統中對於 32 位進程訪問 system32 文件夾會被重定向到 syswow64 文件夾的示例.

     

    @echo off
    echo -== 针对 64 位 cmd 的测试 ==-
    %windir%\system32\cmd.exe /c "dir %windir%\system32\pnputil.exe"
    echo.
    pause
    echo -== 针对 32 位 cmd 的测试 ==-
    %windir%\syswow64\cmd.exe /c "dir %windir%\system32\pnputil.exe"
    pause
    
    


    Folding@Home
    2012年1月15日 15:06
  • 為了更清楚的驗證, 你可以將你寫的批處理程序中添加 pause 命令, 然後通過 Windows 任務管理器觀察是否有一個 cmd.exe 進程名後帶有 *32 字樣.
    Folding@Home
    2012年1月15日 15:12
  • 同意 repl 的看法,如果是在 64 位 Windows 中运行 32 位程序,请检查重定向的问题。
     
    还有就是环境变量,试试在批处理中不要使用 %WinDir% 变量,而是修改为 D:\Windows,看看有没有效果。
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "吴小勇"
     
    微软论坛太恶心了,贴下图片还得跳到另一个窗口
    看看下面这幅图片,我有一个批处理,是放在winrar自解压里执行的,自解压程序运行后解压到一个目录
     
     
    2012年1月15日 21:43