Board logo

标题: [其他] 批处理在桌面上可以执行但在其它目录为何出错? [打印本页]

作者: mattmonkey    时间: 2011-8-2 08:07     标题: 批处理在桌面上可以执行但在其它目录为何出错?

系统是window7

我在桌面有两个文件,一个genxpcom.bat 一个是sample.idl.
在桌面双击执行OK
在命令窗口执行OK

然后把上面两个文件复制到D盘。
双击执行 出错 '\bin\xpidl.exe' 不是内部或外部命令,也不是可运行的程序
以管理员权限执行 出错 ** WARNING **: Parse of sample.idl failed: No such file or directory
在命令行执行OK

太诡异了...

求两个出错的解释
求普通双击和管理员权限双击执行的区别
求解决方案




genxpcom.bat
  1.     @echo off
  2.    %XUL_HOME%\bin\xpidl.exe -m header -I %XUL_HOME%\idl sample.idl
  3.    %XUL_HOME%\bin\xpidl.exe -m typelib -I %XUL_HOME%\idl sample.idl
  4.    echo over... & pause > nul
复制代码
sample.idl
[略]

另外,论坛好像对firefox不兼容么。分类框会自己消失掉
作者: hfg1977    时间: 2011-8-2 08:38

"Parse of sample.idl failed: No such file or directory"
google 翻译 : sample.idl解析失败:没有那个文件或目录

对于新同学,还是要详细的解释一下:
CMD执行命令,一定要在其可查找的目录范围内存在才可以.

你把bat移动到d:盘, CMD找不到那个xpidl.exe文件了,所以报错.

解决:
  1. @echo off
  2.    文件的绝对位置\bin\xpidl.exe -m header -I %XUL_HOME%\idl sample.idl
  3.    文件的绝对位置\bin\xpidl.exe -m typelib -I %XUL_HOME%\idl sample.idl
  4.    echo over... & pause > nul
复制代码
  1. cd "%file_path%"
  2. code ...
  3. 或者
  4. pushd "%file_path%"
  5. code ...
复制代码

作者: mattmonkey    时间: 2011-8-2 08:50

%XUL_HOME% 是我设的一个环境变量,是个绝对路径。
如果加一句  echo   %XUL_HOME%
会显示 echo 处于关闭
作者: mattmonkey    时间: 2011-8-2 08:53

另外 sample.idl 是和 bat文件一起复制到D盘的
作者: mattmonkey    时间: 2011-8-2 09:12

把sample.idl改成 %~dp0\sample.idl 就好了 。
奇怪的为什么在桌面可以不加呢?
而且放到其他目录,不修改的情况下 echo %xul_home% 会说已经关闭...
作者: enliang    时间: 2011-8-2 09:19

好久没来了。。。。。。
作者: enliang    时间: 2011-8-2 09:20

window7 批处理中reg这个命令是不是不能用了
作者: lfoqtal    时间: 2011-8-2 11:27

把sample.idl改成 %~dp0\sample.idl 就好了 。
奇怪的为什么在桌面可以不加呢?
而且放到其他目录,不修改 ...
mattmonkey 发表于 2011-8-2 09:12



    问题在于你那个%xul_home%是怎么获取的?默认系统是没这个参数的
作者: cjiabing    时间: 2011-8-2 12:05

  1. echo %xul_home% 会说已经关闭...
复制代码
这个问题解决了没有?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2