zoukankan      html  css  js  c++  java
  • DOS批处理中%~dp0表示什么意思

    https://www.jianshu.com/p/5a1a882ead95

    https://www.cnblogs.com/cnpirate/p/5282324.html

    https://www.cnblogs.com/langtianya/p/5171169.html

    *********************************************

    如果一个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 大小)
    *****************************

    转载自 www.cnblogs.com/yxsylyh 转载内容如下:

    cd /D %~dp0的意思如下:

    更改当前目录为批处理本身的目录 
    比如你有个批处理a.bat在D:qq文件夹下 
    a.bat内容为 
    cd /d %~dp0 
    在这里 
    cd /d %~dp0的意思就是cd /d d:qq 
    %0代表批处理本身 d:qqa.bat 
    ~dp是变量扩充 
    d既是扩充到分区号 d: 
    p就是扩充到路径 qq 
    dp就是扩充到分区号路径 d:qq 

    扩展阅读:

    %~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录
    cd是转到这个目录,不过我觉得cd /d %~dp0 还好些

    选项语法:

    ~0 - 删除任何引号("),扩充 %0
    %~f0 - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件)
    %~d0 - 仅将 %0 扩充到一个驱动器号
    %~p0 - 仅将 %0 扩充到一个路径
    %~n0 - 仅将 %0 扩充到一个文件名(“n”是name 文件名)
    %~x0 - 仅将 %0 扩充到一个文件扩展名
    %~s0 - 扩充的路径只含有短名(“s”为Short,短的)
    %~a0 - 将 %0 扩充到文件的文件属性(“a”为attribute,即属性)
    %~t0 - 将 %0 扩充到文件的日期/时间(“t”time)
    %~z0 - 将 %0 扩充到文件的大小(Size 大小)
    %~$PATH:0 - 查找列在路径环境变量的目录,并将 %0 扩充
    到找到的第一个完全合格的名称。如果环境变量名
    未被定义,或者没有找到文件,此组合键会扩充到
    空字符串

    可以组合修饰符来得到多重结果:

    %~dp0 - 仅将 %0 扩充到一个驱动器号和路径
    %~nx0 - 仅将 %0 扩充到一个文件名和扩展名
    %~fs0 - 仅将 %0 扩充到一个带有短名的完整路径名
    %~dp$PATH:0 - 查找列在路径环境变量的目录,并将 %I 扩充
    到找到的第一个驱动器号和路径。
    %~ftza0 - 将 %0 扩充到类似输出线路的 DIR

    %0为当前批处理文件
    如果0换成1为第一个文件,2为第2个

    *************************
    DOS批处理中%cd%和%~dp0的区别
     
    在DOS的批处理中,有时候需要知道当前的路径。
    在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。
     
        这两个变量的用法和代表的内容是不同的。
     
        1. %cd% 可以用在批处理文件中,也可以用在命令行中;
    展开后,是驱动器盘符:+当前目录,如在dos窗口中进入c:dir目录下面,  www.2cto.com  
    输入:echo %cd% ,则显示为:c:dir 。
     
       %cd%的内容是可以被改变的,其内容为命令的执行路径或批处理文件的执行路径。
        2.%~dp0只可以用在批处理文件中,它是由它所在的批处理文件的目录位置决定的,
    是批处理文件所在的盘符:+路径。在执行这个批处理文件的过程中,
    它展开后的内容是不可以改变的。比如在D盘下有个批处理文件,path.bat,其内容为:
     
    [plain]
    @echo off     
    echo this is %%cd%%  %cd%     
    echo this is %%~dp0 %~dp0   
     
    在C: 和E:分别下执行它,输出为
    c:>d:Path.bat

    this is %cd% c:
    this is %~dp0 d:


    c:>e:
    e:>d:Path.bat

    this is %cd% e:
    this is %~dp0 d:



  • 相关阅读:
    前端开发网址
    Iconfot阿里妈妈-css高级应用
    手机端的META你知道多少?
    24个 HTML5 & CSS3 下拉菜单效果及制作教程
    css :clip rect 正确的使用方法
    layui :iframe 与 layer 的位置问题
    时间戳转现实时间的方法
    关于 iframe 的小问题若干
    使用 forever 启动 vue 需要注意的问题
    var 的一个坑,以及 let
  • 原文地址:https://www.cnblogs.com/zhao1949/p/11056776.html
Copyright © 2011-2022 走看看