.bat批处理(四):路径相关%cd%和%~dp0的区别

前言

在批处理脚本的使用过程中,有时候会用到路径相关的操作,比如当前路径如果是XXX,就执行XX命令等,其实在DOS命令中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。但是这两个变量的用法和代表的内容是不同的,我们一起来分析一下。

内容

  • %cd%可以用在批处理文件中,也可以用在命令行中,内容为执行命令所在的目录(包含驱动器盘符)。
  • %~dp0只可以用在批处理文件中,由所在的批处理文件的目录位置决定的,内容为批处理文件所在的目录(包含驱动器盘符)。
  • 比如我们在目录D:\>F:\batTool\下新建一个文件命名为test_dir.bat,其中的代码内容如下:
@echo off

::对比%cd%和%~dp0的不同
echo %%cd%% = %cd%     
echo %%~dp0 = %~dp0  
  • 我们在不同的目录下执行的结果如下:

F:\batTool>test_dir.bat
%cd% = F:\batTool
%~dp0 = F:\batTool\

F:\batTool>cd /d E:

E:>F:\batTool\test_dir.bat
%cd% = E:\
%~dp0 = F:\batTool\

E:>cd /d D:

D:>F:\batTool\test_dir.bat
%cd% = D:\
%~dp0 = F:\batTool\

总结

  • %cd%表示执行命令时所在的目录,%~dp0表示批处理文件所在的目录。
  • %cd%是可以改变的,因为它表示的是当前目录,如果在批处理中使用了cd命令就会改变他的值。
  • %~dp0是在执行某个批处理结束之前是不会改变的,因为代表的是脚本文件在磁盘的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlbertS

常来“玩”啊~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值