Board logo

标题: [系统相关] 某些命令在批处理中无效? [打印本页]

作者: Ttaons    时间: 2011-4-9 10:33     标题: 某些命令在批处理中无效?

我发现有好多命令在批处理中无法运行
例如
  1. @echo off
  2. cacls   d:\aa.txt  
  3. pause
复制代码
或者
  1. @echo off
  2. schtasks  /create /tn tname /sc minute /tr e:\dos.bat  /mo 1 /st 10:10 /et 10:20
  3. pause
复制代码
还有诸如choice等命令,在命令提示符下输入都是可以用的,但是写在bat脚本里就不行了
这些批处理执行后都是什么提示都没有,就是一个黑框,这是为什么啊???
作者: jh1688    时间: 2011-4-9 10:58

cacls /? 看帮助……
作者: Ttaons    时间: 2011-4-9 11:52

发帖之前就已经看过了  没用   
但是我把代码改为
  1. @echo off
  2. C:\Windows\System32\cacls.exe  d:\aa.txt  
  3. pause
复制代码
这样就可以了···这是为什么?
作者: Batcher    时间: 2011-4-9 15:18

1、不要把批处理保存为cacls.bat或者cacls.cmd
2、检查%PATH%环境变量
作者: hanyeguxing    时间: 2011-4-9 22:02

以楼主的这个代码为例:
  1. @echo off
  2. cacls   d:\aa.txt  
  3. pause
复制代码
,楼主将批处理命名为cacls.bat。
当运行到cacls   d:\aa.txt时,因为cacls不是内部命令,所以命令解释器搜索该程序并优先搜索当前目录,文件类型不仅有exe,还有bat和cmd等,于是cmd将cacls当成cacls.bat处理,于是。。。
所以以上代码就相当于:
  1. @echo off
  2. %0
复制代码
无限循环中......
作者: Ttaons    时间: 2011-4-11 09:19

我明白了···谢谢4L,5L····




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