Board logo

标题: [文件操作] [已解决]如何调用子目录中的批处理并在子目录执行? [打印本页]

作者: y169168712    时间: 2011-4-5 18:51     标题: [已解决]如何调用子目录中的批处理并在子目录执行?

本帖最后由 y169168712 于 2011-4-5 22:58 编辑

文件位置
D:\1.bat
D:\ABC\2.bat
D:\ABC\a.rar


1.bat内容
call D:\ABC\2.bat


2.bat内容
"%ProgramFiles%\WinRAR\RAR.exe" x -y a.rar

a.rar内容
XX.mp3

运行1.bat出现错误  系统提示找不到a.rar


我想用call命令将文件XX.mp3解压到D:\ABC里,不知道是哪里出了问题
后来又尝试使用start命令还是出现错误
作者: hanyeguxing    时间: 2011-4-5 19:39

本帖最后由 hanyeguxing 于 2011-4-5 19:57 编辑

方法1:如果想在 1.bat 中使用 call 则这样写:
  1. cd/d ABC
  2. call 2.bat
复制代码
方法2:也可以使用 cd 等命令在2.bat中强制工作目录为%~dp0,例如:
  1. pushd "%~dp0"
  2. "%ProgramFiles%\WinRAR\RAR.exe" x -y a.rar
  3. popd
复制代码
这样2.bat不再受父批处理的影响,本身也不会影响父批处理
作者: Commander    时间: 2011-4-5 19:40

  1. start /d "D:\ABC" 2.bat
复制代码





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