windows下bat批处理中%cd%和%~dp0的区别

windows下bat批处理中%cd%和%~dp0的区别

:: ===================================================================================
:: windows下bat批处理中%cd%和%~dp0的区别
:: 1. %cd% 可以用在批处理文件中,也可以用在命令行中;
:: 展开后,是驱动器盘符:+当前目录,如在dos窗口中进入c:\dir目录下面,
:: 输入:echo %cd% ,则显示为:c:\dir 。
:: %cd%的内容是可以被改变的,其内容为命令的执行路径或批处理文件的执行路径。
::
:: 2.%~dp0只可以用在批处理文件中,它是由它所在的批处理文件的目录位置决定的,是批处理
:: 文件所在的盘符:+路径。在执行这个批处理文件的过程中,它展开后的内容是不可以改变的。
::
:: cd /d %~dp0的意思就是cd /d d:\test
:: %0代表批处理本身 d:\test\a.bat
:: ~dp是变量扩充
:: d既是扩充到分区号 d:
:: p就是扩充到路径 \test
:: dp就是扩充到分区号路径 d:\test

:: 扩充变量语法详解:
:: 选项语法:
:: ~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 


:: ====================================================================================

@echo off

echo This is command %%cd%%  Result:%cd%

@echo ===============================================

echo This is command %%~dp0  Result:%~dp0


@echo ===============================================
:: 切换到脚本所在的目录
set WORK_DIR=%~dp0
echo Switch to %WORK_DIR%
cd /d %WORK_DIR%
echo %cd%
@echo ===============================================

pause


  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值