当前位置: 首页 > news >正文

.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是在执行某个批处理结束之前是不会改变的,因为代表的是脚本文件在磁盘的位置。

相关文章:

  • MFC的使用——在共享DLL中使用MFC、在静态库中使用MFC
  • 我的KMP实现
  • SVN:Update item to this version和Revert to this version区别
  • CSDN博客:使用Markdown编辑器使图片居中显示
  • UE4项目运行时显示鼠标指针
  • UE4引擎中类的命名规则
  • 排序算法系列之(零)——排序初体验
  • 光棍节程序员闯关秀-解密
  • Mysql批量删除数据库
  • UE4中的反射机制
  • 排序算法系列之(一)——选择排序清新脱俗的一面
  • C++11(一):在类的定义时初始化非静态变量
  • C++11(二):lamda表达式
  • 可能错误使用了‘offsetof’宏
  • 警告:对 NULL 对象非静态数据成员‘XXX::xxx’的访问无效
  • [deviceone开发]-do_Webview的基本示例
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • canvas绘制圆角头像
  • HTML-表单
  • HTTP请求重发
  • iOS 颜色设置看我就够了
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • react-native 安卓真机环境搭建
  • 程序员最讨厌的9句话,你可有补充?
  • 大主子表关联的性能优化方法
  • 记一次和乔布斯合作最难忘的经历
  • 你不可错过的前端面试题(一)
  • 用Visual Studio开发以太坊智能合约
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # Java NIO(一)FileChannel
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (6)设计一个TimeMap
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (规划)24届春招和25届暑假实习路线准备规划
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (实战篇)如何缓存数据
  • (算法)Game
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)Scala的“=”符号简介
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [2016.7 day.5] T2
  • [ASP]青辰网络考试管理系统NES X3.5
  • [C++]类和对象【下】
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [CF]Codeforces Round #551 (Div. 2)
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [CSS]CSS 的背景
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • [hdu 2826] The troubles of lmy [简单计算几何 - 相似]