如何在batch文件中取得该文件的路径

hanlray@gmail.com
Revision: 0.99 Date: 2006/04/01

很简单,就是用%~dp0,如:

  set MYDIR=%~dp0

%~dp是一个batch参数的一个Modifier,这里是修饰%0参数,当然也可以有%~dp1,%~dp2等,按照Microsoft官方的说法,%~dp1的含义是"Expands %1 to a drive letter and path",按照我的理解,其实就是把%x看作一个文件参数时被Comamnd Shell定位到的位置的绝对路径(不包括文件名),如:

  C:/>D:/tmp/test.bat
%dp0为D:/tmp,%0已经是个绝对路径了,自然是D:/tmp
D:/tmp>test.bat
%dp0还是D:/tmp,因为此时test.dat是一个相对路径,而在Windows Shell中,文件的相对路径是相对于当前目录的
C:/tmp>D:/tmp/test.bat foo
此时%dp0还是D:/tmp,而%dp1就是C:/tmp了,道理同上
C:/tmp>D:/tmp/test.bat ../foo
此时%dp1就是C:/

不过%~dp0似乎不能在Win9X上工作,alt.msdos.batch里的How to get the path of a batch file貌似解决了这个问题

一个比较全batch相关资源在这里

Microsoft的官方参考在这里

如何在batch文件中取得该文件的路径相关推荐

  1. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件

    原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...

  2. bak文件转oracle文件,如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g)...

    如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g) 我有Oracle 11g备份文件(.bak文件)如何在Oracle 11g ...

  3. 如何在VB.NET中把excel文件转化为PDF文件

    文章目录 一.如何在VB.NET中把excel文件转化为PDF文件 二.使用步骤 一.如何在VB.NET中把excel文件转化为PDF文件 基于之前获取打印机端口号的教程 二.使用步骤 代码如下(示例 ...

  4. electron 解压zip_如何在Electron Framework中提取.zip文件的内容(解压缩)

    本文概述 必须先将其解压缩, 然后才能开始实际使用zip文件中的内容(文件).在本文中, 你将学习如何使用Electron Framework和decompress-zip模块解压缩.zip文件. 要 ...

  5. 如何在Qt Creator中创建pri文件,以及pri文件的说明

    版权声明:本文为博主原创文章,但凡转载此博客者必须附上博客链接 初学Qt的人可还不会接触到这个问题,但是一旦你开始编写某个较大项目的时候,这个问题就不可避免需要解决. 对于大神们来讲可能这是个很简单的 ...

  6. 搜索目录下 匹配文件中 最新的文件 路径

    搜索目录下 匹配文件中 最新的文件 路径 1  #!/usr/bin/python 2  import os 3  import glob 4  path = "/homeyufei/tes ...

  7. java获取当前项目相对路径,在JAVA文件中获取该项目的相对路径

    在JAVA文件中获取该项目的相对路径 1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.t ...

  8. oracle 控制文件 scn,重建控制文件后, 控制文件中的数据文件检查点SCN来自哪里...

    重建控制文件后, 控制文件中的数据文件检查点SCN来自哪里 这个问题要看具体的情况,比如: 1. 数据库是shutdown immediate,也就是说数据库是一致的状态,重建控制文件后,SCN 以d ...

  9. java+读取source资源_如何从JavaJAR文件中读取资源文件?

    如何从JavaJAR文件中读取资源文件? 我试图从一个单独的JAR文件中访问一个XML文件,这个JAR是作为桌面应用程序运行的.我可以获得我需要的文件的URL,但是当我将它传递给FileReader( ...

最新文章

  1. matlab 绘图3
  2. 安卓 AsyncHttpClient - “Content-Type not allowed!”
  3. python flask 获取 get post 参数
  4. 9.12測试(四)——測试笔
  5. ccf-csp #201909-2 小明种苹果(续)
  6. 动态规划——硬币找零和币值最大化问题
  7. 用来枚举属性的对象工具函数
  8. 关于单链表的头插法和尾插法
  9. iOS之LLDB常用调试命令
  10. C++开发工程师可以分为几层?
  11. 依赖注入框架Autofac的简单使用
  12. window文件恢复工具
  13. 基于C# 和Access数据库的电影院管理系统
  14. matlab 凸多边形,matlab练习程序(多边形顶点凹凸性)
  15. 怎样做用户体验企业网站建设的流程?珠海网站建设
  16. 卸载360天擎-奇安信
  17. 干货全拿走-用Excel制作小市值轮动价值投资选股器
  18. ssh免密超级简单复制操作
  19. cocos2dx[2.x](14)--音乐音效SimpleAudioEngine
  20. Ubuntu18重装显卡驱动

热门文章

  1. 88hash 饰品交易平台 立刻取回的csgo开箱网站
  2. 十年全网各大行业薪资调查,程序员是缩短贫富差距最好的职业选择?
  3. debian9.6安装qq遇到的坑(成功安装qq)
  4. 基于java的在线物流管理系统【原创】
  5. slot-scope用法及理解
  6. 基于目标识别的区域入侵检测——详细实现从获取区域到检测入侵目标
  7. 二极管专题:几种二极管参数对比
  8. 文本标注平台搭建之brat
  9. Distributed System: Naming Service (命名服务)
  10. mysql转义单引号双引号_[转] mysql 单引号 双引号