zoukankan      html  css  js  c++  java
  • DOS批处理中%~dp0等扩充变量语法详解

    有时候我们看到别人使用%~dp0

    ~是扩展的意思,相当于把一个相对路径转换绝对路径
    %0代指批处理文件自身
    %1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推
    %~d0 是指批处理所在的盘符,其中d代表drive
    %~p0 是指批处理所在的目录,其中p代表path
    %~dp0 是批处理所在的盘符加路径


    cd %~dp0 就是进入批处理所在目录了


    详细解释还可参考命令 call /?

    DOS批处理中%~dp0表示什么意思

    (注: %0 就是该 batch 文件的文件名)
    这句的意思是 
    更改当前目录为批处理本身的目录 
    有些晕吧?不急,我举例 
    比如你有个批处理 a.bat 在 D:/qq 文件夹下 
    a.bat 内容为 
    cd /d %~dp0 
    在这里 
    cd /d %~dp0 的意思就是 cd /d d:/qq 
    %0 代表批处理本身 d:/qq/a.bat 
    ~dp 是变量扩充 
    d 既是扩充到分区号 d: 
    p 就是扩充到路径 /qq 
    dp 就是扩充到分区号路径 d:/qq

    扩充变量语法详解:
    :: 选项语法 : 
    :: ~I - 删除任何引号 (") ,扩充 %I 
    :: %~fI - 将 %I 扩充到一个完全合格的路径名 
    :: %~dI - 仅将 %I 扩充到一个驱动器号 
    :: %~pI - 仅将 %I 扩充到一个路径 
    :: %~nI - 仅将 %I 扩充到一个文件名 
    :: %~xI - 仅将 %I 扩充到一个文件扩展名 
    :: %~sI - 扩充的路径只含有短名 
    :: %~aI - 将 %I 扩充到文件的文件属性 
    :: %~tI - 将 %I 扩充到文件的日期 / 时间 
    :: %~zI - 将 %I 扩充到文件的大小 
    :: %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充 
    :: 到找到的第一个完全合格的名称。如果环境变量名 
    :: 未被定义,或者没有找到文件,此组合键会扩充到 
    :: 空字符串 
    :: 可以组合修饰符来得到多重结果 : 
    :: %~dpI - 仅将 %I 扩充到一个驱动器号和路径 
    :: %~nxI - 仅将 %I 扩充到一个文件名和扩展名 
    :: %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 
    :: %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充 
    :: 到找到的第一个驱动器号和路径。 
    :: %~ftzaI - 将 %I 扩充到类似输出线路的 DIR

    下面是实例解析:

    如果一个install.bat文件位于D:jeesitein
    文件内容如下:

    @echo off
    echo [INFO] This is a demo.
    echo [INFO] %~dp0
    pause
    

      运行install.bat,命令行输出如下

    [INFO] This is a demo.
    [INFO] D:jeesitein
    

      

    即:
    %0代表文件本身
    d代表盘符
    p代表路径
    扩展的选项还包括:

    %~f0 - 完整的路径+文件名

    [INFO] D:jeesiteininstall.bat

    %~n0 - 文件名(无扩展名)

    [INFO] install
    %~x0 - 文件扩展名

    [INFO] .bat

    %~s0 - 扩充的路径只含有短名(“s”为Short,短的)
    %~a0 - 将 %0 扩充到文件的文件属性(“a”为attribute,即属性)
    %~t0 - 将 %0 扩充到文件的日期/时间(“t”time)
    %~z0 - 将 %0 扩充到文件的大小(Size 大小)

    等等

  • 相关阅读:
    绝对干货:供个人开发者赚钱免费使用的一些好的API接口
    科普技术贴:个人开发者的那些赚钱方式
    北漂程序员的笑与泪
    非著名程序员公众号
    北漂程序员的笑与泪
    【有人@我】Android中高亮变色显示文本中的关键字
    新时代的coder如何成为专业程序员
    自定义圆形控件RoundImageView并认识一下attr.xml
    偷天换日:网络劫持,网页js被伪装替换。
    jeesite 去掉 /a
  • 原文地址:https://www.cnblogs.com/navysummer/p/11257998.html
Copyright © 2011-2022 走看看