%cd%和%~dp0的比较

在a.bat文件中写:

cd %~dp0

dir>%~dp0/log.txt

a.bat所在位置是C:\Users\sy\Desktop\batch\bat。

1).   在此目录下双击此bat文件,生成的log文件内容是

dir  命令后目录结构是 a.ba t同目录下的文件夹结构。

2).  在程序中调用这个 bat 文件,生成的log文件中的文件夹结构是调用这个bat文件的代码的工程所在文件的目录。

现象 :  两个结果所显示的目录是不同的盘符!一个是a.bat文件所在盘符,一个是调用这个bat文件的工程所在的盘符。

%~dp0 由批处理文件所在的目录位置决定的。

%cd% 是当前目录

现象分析:

一.  在d:/batcher下双击执行d.bat文件时候,当前的目录是d:\batcher这个目录。所以%cd%结果是 d:/batcher,%~dp0也是d:/batcher这个目录。

二.  在程序代码中调用d.bat文件时候,当前目录就是所在的cpp文件的目录,所以此时%cd%是cpp所在目录,而%~dp0还是bat文件实际存放的目录位置。

注:当程序调用bat文件时候,当前目录就是所调用bat文件的cpp文件的所在目录。

你可能感兴趣的:(%cd%和%~dp0的比较)