liangsheng 发表于 2014-12-22 09:16:44

DOS 批处理文件内 %cd% 与 %~dp0 符号的区别

DOS 批处理文件内 %cd% 与 %~dp0 符号的区别
       在执行 DOS 批处理时,有时需要知道当前路径。DOS 环境有 2 环境变量跟当前路径有关,一是 %cd%,另一是 %~dp0。这 2 变量的用法、代表的内容有很大区别。

       1、%cd% 可用在批处理文件内,也可用在命令行环境下;

            %cd% 展开后,是 “驱动器盘符” :+ “当前目录”。譬如,在 CMD 窗口 DOS 环境进入 D:\Program Files 目录后,键入:            
echo %cd%            CMD 窗口会显示:            
D:\Program Files            %cd% 的内容是 “可变的”,其内容为 “命令执行路径” 或 “批处理文件执行路径”。

       2、%~dp0只可用在批处理文件内,它是由它所在的批处理文件的具体目录位置决定的;

            %~dp0 展开后,是 “批处理文件所在盘符” :+ “批处理文件具体路径”。在批处理文件执行过程中,展开后的内容是 “不可变的”。譬如,在 D:\Program Files 文件夹下有一批处理文件 test.bat,内容如下:
@echo off
echo this is %%cd%%%cd%
echo this is %%~dp0 %~dp0             在 CMD 窗口 DOS 环境 C:\ 目录下执行 test.bat 后,CMD 窗口会输出:
C:\>D:\Program Files\test.bat
this is %cd%C:\
this is %~dp0 D:\Program Files\
版权声明:
本文由 德云社区 整理,原文来自网络。

liangsheng 发表于 2014-12-22 09:17:48

DOS, CMD, 批处理, bat, MSDOS

liangsheng 发表于 2014-12-22 09:19:06

DOS, CMD, 批处理, bat, MSDOS

页: [1]
查看完整版本: DOS 批处理文件内 %cd% 与 %~dp0 符号的区别