DOS批处理中%cd%和%~dp0的异同分析_DOS/BAT

在DOS的批处理中,有时候需要知道当前的路径。在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。

这两个变量的用法和代表的内容是不同的。

1. %cd% 可以用在批处理文件中,也可以用在命令行中;展开后,是驱动器盘符:+当前目录,如在dos窗口中进入c:\dir目录下面,

输入:echo %cd% ,则显示为:c:\dir 。
%cd%的内容是可以被改变的,其内容为命令的执行路径或批处理文件的执行路径。

2.%~dp0只可以用在批处理文件中,它是由它所在的批处理文件的目录位置决定的,是批处理文件所在的盘符:+路径。在执行这个批处理文件的过程中,它展开后的内容是不可以改变的。比如在D盘下有个批处理文件,path.bat,其内容为:

复制代码 代码如下:

@echo off
echo this is %%cd%% %cd%
echo this is %%~dp0 %~dp0

在C:\ 和E:\分别下执行它,输出为:

时间: 2024-09-25 06:49:52

DOS批处理中%cd%和%~dp0的异同分析_DOS/BAT的相关文章

DOS批处理中%cd%和%~dp0的区别

1. %cd% 可以用在批处理文件中,也可以用在命令行中:展开后,是驱动器盘符:+当前目录,如在dos窗口中进入c:dir目录下面, 输入:echo %cd% ,则显示为:c:dir . %cd%的内容是可以被改变的,其内容为命令的执行路径或批处理文件的执行路径. 2.%~dp0只可以用在批处理文件中,它是由它所在的批处理文件的目录位置决定的,是批处理文件所在的盘符:+路径.在执行这个批处理文件的过程中,它展开后的内容是不可以改变的.比如在D盘下有个批处理文件,path.bat,其内容为: @e

不错的dos批处理命令详解第1/2页_DOS/BAT

一.简单批处理内部命令简介  1.Echo 命令  打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.  语法  echo [{on│off}] [message]  Sample:@echo off / echo hello world  在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来.  2.@ 命令  表示不显示@后面的命令,在入侵过程中(例

批处理中的echo命令图文详解_DOS/BAT

1. Echo 显示当前ECHO的状态:ECHO ON 或者ECHO OFF 2. ECHO ON 将ECHO状态设置为ON,将显示命令行,也就是前面的C:\>类似的标志,如图所示: 3. ECHO OFF 将ECHO状态设置为OFF,将不显示命令行,也就是前面的C:\>类似的标志,其他功能一样,用户也可以输入命令,也可以显示命令结果,如图所示: 4. ECHO 字符串 将输入的字符串显示在CMD屏幕上.如图所示 5. ECHO 字符串 &ECHO 字符串 - 用来显示多行数据,如果所

分享dos批处理命令的一些使用技巧(截取字符串)_DOS/BAT

截取字符串: set var=10203040 第一数字是位置,第二个位置是长度,第二个位置如果无,默认是结尾,第一个位置如果是负数,则反方向的位置.位置从0开始 复制代码 代码如下: echo %var:~-4,3% echo %var:~0% echo %var:~1% echo %var:~-2% 替换字符串 复制代码 代码如下: echo %var:0=kkk% ;0替换为kkk echo %var:10=kkk% ;10替换为kkk echo %var:20=kkk% echo %va

DOS批处理中%~dp0等扩充变量语法详解_DOS/BAT

有时候我们看到别人使用%~dp0 ~是扩展的意思,相当于把一个相对路径转换绝对路径 %0代指批处理文件自身 %1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推 %~d0 是指批处理所在的盘符,其中d代表drive %~p0 是指批处理所在的目录,其中p代表path %~dp0 是批处理所在的盘符加路径 cd %~dp0 就是进入批处理所在目录了 详细解释还可参考命令 call /? DOS批处理中%~dp0表示什么意思 (注: %0 就是该 batch 文件的文件名) 这句的意

写批处理必备的一些命令参数使用技巧_DOS/BAT

 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件. 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令.当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的.批处理的程序

dos中RD命令递归删除目录的代码_DOS/BAT

rd命令递归删除目录 要求: 用DOS的RD命令删除D盘"文件夹1"中的"文件夹2"整个目录. 具体命令: 复制代码 代码如下: rd D:\文件夹1\文件夹2 /S /Q 删除一个目录. RMDIR [/S] [/Q] [drive:]path RD [/S] [/Q] [drive:]path /S 除目录本身外,还将删除指定目录下的所有子目录和 文件.用于删除目录树. /Q 安静模式,带 /S 删除目录树时不要求确认

DOS中判断进程是否存在的方法_DOS/BAT

检测进程是否存在,并做出预定动作. tasklist /nh>d:\tddown~1\1.txt find /i "QQ.exe" d:\tddown~1\1.txtif ERRORLEVEL 1 (echo qq.exe不存在) else (echo qq.ex存在)------------第二个-----------tasklist /nh|find /i "QQa.exe"if ERRORLEVEL 1 (echo qqa.exe不存在) else (e

批处理读取注册表中run下面的值的代码_DOS/BAT

复制代码 代码如下: @echo off for /f "tokens=2 delims=:" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run') do echo %systemDrive%%%i pause>nul