ZZ: windows 批处理文件bat中获取当前目录
2016-03-21 16:28
603 查看
zz from: http://blog.csdn.net/shenyunsese/article/details/17024631
批处理文件中,往往我们想运行当前目录下的某些程序,比如说bat调用java,请参看本人的其他文章。今天重点说怎么取得当前目录。
在度娘了很多文章之后做一个总结,目前,我发现的有两个:
1,命令 %cd% 或者 !cd!
2,命令 %~dp0
很多人用第一种命令,但是有弊端。
第一种命令,是当进入到命令所在目录后,可以这样运行,如果用windows的自动任务,或者在其他目录输入bat命令的全路径,这样就会出问题。
所以,建议使用第二种
以下举例说明:curDir.bat文件
[plain] view
plain copy
@echo off
setlocal EnableDelayedExpansion
echo 路径1.1:!cd!
pause
@echo off
echo 路径1.2:%cd%
pause
@echo off
echo 路径2:%~dp0
pause
文件存放于:D:\classPath\battojava 目录
打开cmd窗口:环境目录为C:\Users\shenyun
输入全路径:D:\classPath\battojava\curDir.bat 运行bat文件
运行结果:
总结:很明显,
方法1:命令 %cd% 或者 !cd! ,取得是运行的环境目录
方法2:命令 %~dp0 ,取得了bat的文件所在目录
批处理文件中,往往我们想运行当前目录下的某些程序,比如说bat调用java,请参看本人的其他文章。今天重点说怎么取得当前目录。
在度娘了很多文章之后做一个总结,目前,我发现的有两个:
1,命令 %cd% 或者 !cd!
2,命令 %~dp0
很多人用第一种命令,但是有弊端。
第一种命令,是当进入到命令所在目录后,可以这样运行,如果用windows的自动任务,或者在其他目录输入bat命令的全路径,这样就会出问题。
所以,建议使用第二种
以下举例说明:curDir.bat文件
[plain] view
plain copy
@echo off
setlocal EnableDelayedExpansion
echo 路径1.1:!cd!
pause
@echo off
echo 路径1.2:%cd%
pause
@echo off
echo 路径2:%~dp0
pause
文件存放于:D:\classPath\battojava 目录
打开cmd窗口:环境目录为C:\Users\shenyun
输入全路径:D:\classPath\battojava\curDir.bat 运行bat文件
运行结果:
总结:很明显,
方法1:命令 %cd% 或者 !cd! ,取得是运行的环境目录
方法2:命令 %~dp0 ,取得了bat的文件所在目录
相关文章推荐
- 图的割边(有缺陷的算法)
- myeclipse tomcat的启动缓慢问题----一次会加载多个项目
- Linux/centos用户管理及权限管理
- Android内存优化大全
- 中断上下文、进程上下文
- Posterior probability
- linux系统上amr转为mp3的问题
- scala中如何编写自定义的流程控制结构
- 产品经理那些事儿学习整理笔记
- [ActionScript&Flex] FlashBuilder编译条件之如何屏蔽调试代码
- 触发器、存储过程和函数之拾遗
- java 实现md5
- hdu 4864 Task 贪心+二分/set
- Hadoop in action 第45678章
- linux目录结构
- 及吾无身,吾有何患
- ABAP学习之旅——多种方式建立模块化功能
- android adb使用
- 第一次JAVA基础考试后的反思
- 进程控制理论,王明学learn